首页 > 其他分享 >用MATLAB创建一个矩阵,包含颗粒的ID,type,直径,密度,坐标等信息,并填充一个矩形的空间

用MATLAB创建一个矩阵,包含颗粒的ID,type,直径,密度,坐标等信息,并填充一个矩形的空间

时间:2024-01-15 14:34:17浏览次数:18  
标签:diameter particle min max 矩阵 Atoms MATLAB type ID

LIGGGHTS可以read_data命令通过读取.txt文件中的颗粒信息。.txt的内容参考链接:liggghts通过.txt文件导入颗粒信息

下面的MATLAB代码可以根据需要生成一系列的颗粒信息,包括颗粒的ID,type,diameter,density,coordinate等。颗粒数量为8000,并且能够填充一个范围在(x_min,y_min,z_min)到(x_max,y_max,z_max)的矩形空间,每个方向上有20个颗粒,颗粒直径为0.008,颗粒密度为1000。

clc;
clear;
close all;

% Atoms的数量
particle_number = 8000;
% 创建一个8000*1的矩阵,作为Atoms ID
a=(1:particle_number)';
Atoms_ID = a;
% 创建一个8000*1的矩阵,作为Atoms type
b=ones(particle_number,1);
Atoms_type=b;
% 创建一个8000*1的矩阵,作为Atoms diameter
c=ones(particle_number,1);
particle_diameter=0.008;
Atoms_diameter=c*0.008;
% 创建一个8000*1的矩阵,作为Atoms diameter
d=ones(particle_number,1);
Atoms_density=d*1000;

% 创建一个8000*3的矩阵,作为Atoms coordinate
% 初始化一个8000*3的矩阵
% 定义每个方向上点的数量(三个方向上点的数量一致)
n = 20;
% 定义坐标范围(填充立方体的长度范围)
x_min = 0.1;
x_max = x_min+particle_diameter*(n-1);
y_min = 0.1;
y_max = y_min+particle_diameter*(n-1);
z_min = 0.1;
z_max = z_min+particle_diameter*(n-1);
% 初始化坐标矩阵
Atoms_coordinates = zeros(n^3, 3);
% 使用for循环填充坐标矩阵
index = 1;
for i = 1:n
    for j = 1:n
        for k =1:n
            x = linspace(x_min, x_max, n);
            y = linspace(y_min, y_max, n);
            z = linspace(z_min, z_max, n)
            Atoms_coordinates(index,:) = [x(i), y(j), z(k)];
            index = index + 1;
        end
    end
end
% 显示生成的坐标点
% disp(coordinates);

%创建一个大的矩阵M,记录Atoms的全部信息
M = [Atoms_ID Atoms_type Atoms_diameter Atoms_density Atoms_coordinates];

% 将矩阵M写入.xlsx文件
xlswrite('G:\cfdem_case\settlingTestMPI-Cate-222\MATLAB_file\particles.xlsx',M,'sheet1','A');

代码的最后将颗粒的信息写入到名为“particles.xlsx”的表格中,然后在创建一个.txt文件,把liggghts通过.txt文件导入颗粒信息中的表头复制到文件中,再把表格中的内容复制到后面即可。

标签:diameter,particle,min,max,矩阵,Atoms,MATLAB,type,ID
From: https://www.cnblogs.com/Xiwang-Sun/p/17965306

相关文章

  • 苹果apple ID解锁教程
    不用当面解手机,不用把手机邮寄过来,也不用远程操作。提供我们需要的资料。您的手机IMEI号以及您的苹果ID账号,我们可以进入apple服务器修改您的 ID帐号,我们有我们的内部人员,我们也要支付相关的费用到相关的营运商。 如何通过IMEI删除原始ID?原理是什么?每个苹果机子首先绑定激活......
  • 为什么"idle_session_timeout"的设置可能是个坏主意?
    PostgreSQL14引入了参数idle_session_timeout,新参数让DBA可以轻松清除所有空闲连接。问题在于它可能造成的附带损害。 导致与连接有关的故障的常见因素1.不受限制的连接设置:max_connections和每个用户限制等连接设置会使系统遭受恶意拒绝服务(DoS)攻击。这些攻击会迅速......
  • 【Vue2+3入门到实战】(23)Vue3之组合式API - 父子通信、模版引用、provide和inject、Vue
    这里写自定义目录标题一、组合式API-父子通信1.父传子2.子传父二、组合式API-模版引用1.基本使用2.defineExpose三、组合式API-provide和inject1.作用和场景2.跨层传递普通数据3.跨层传递响应式数据4.跨层传递方法四、Vue3.3新特性-defineOptions五、Vue3.3新特性......
  • [Android] 你的 nSyncAndDrawFrame 到底卡在了哪里?
    你的nSyncAndDrawFrame到底卡在了哪里?tldr:1.等待渲染结果,2.被suspend(挂起)以下我们以Android最新源码和Android12的实际ANRtrace为例,来分析下这个问题在JAVA层的堆栈如下android.graphics.HardwareRenderer.nSyncAndDrawFrame(Nativemethod)android.graph......
  • Flink 为什么跑官方例子得勾选 include dependencies with"Provided" provided适合在
    Flink为什么跑官方例子得勾选includedependencieswith"Provided"provided适合在编译和测试的环境,和compile类似,但是provide仅仅需要在编译和测试阶段,这是因为provide将不会被打包到lib目录下。大意就是说只要是打上了这个标签就不会被打包到jar文件,所以我们在本地进行编译和......
  • TypeScript 中的 Export 和 Import
    TypeScript中的Export和ImportAUG 30TH, 2016 7:33AM在TypeScript中,经常要使用export和import两个关键字,这两个关键字和es6中的语法是一致的,因为TypeScript=es6+type!注意:目前没有任何浏览器实现export和import,要在浏览器中执行,必须借助TypeSc......
  • IDEA解决每次拉去项目都要重新配置Maven
    电脑要去配置Maven的话自己去搜一个,网上一堆一堆的每次重新打开一个项目,或者拉去一个项目都要重新去配置maven,好烦啊.现在我们配置一遍,就不用总是去配置了第一:关闭现在的项目第二: 第三配置自己的maven地址就行了......
  • android系统的常用测试工具
    常用的Android测试工具有:1.AndroidStudio:Android开发集成环境,提供了丰富的测试工具和调试功能,包括模拟器、调试器、性能分析器等。2.Espresso:Android官方推荐的UI自动化测试框架,可以方便地编写和执行UI测试用例。3.UIAutomator:Android官方提供的UI自动化测试框架,可以用于跨应......
  • 阿里又开发了一款 IDEA 新插件,开发效率提升了 10 几倍!好用到爆!!
    大家好,我是R哥。昨天,我在我的《Java技术小密圈》知识星球分享了《JavaAI辅助编程工具推荐》:帮我智能辅助写代码,开发效率至少提升了10倍,有兴趣的可以加入学习交流,持续分享技术干货,之前一直是199的,为了做大,目前99元优惠中,满3000人持续恢复原价……说到AI辅助工具,市......
  • PostgreSQL 数据库日志收集功能开启-参数 syslog_ident 等其他参数设置
    syslog_ident(string)当日志记录到syslog日志时,该参数决定了用于识别syslog日志中PostgreSQL消息的程序名称。默认为postgres。该参数只能在postgresql.conf文件或服务器命令行中设置。syslog_sequence_numbers(boolean)当日志记录到syslog并且开启此选项时(默认设置......