关于Matlab中一些操作的记录
0.目的
记录关于matlab实现某些功能的代码段。
001. matlab遍历结构体成员
s = struct('a',11,'b',222) % 定义结构题
fileds = fieldnames(s); % 获取结构体成员名称,并返回元胞cell
for i=1:length(fileds) % 结构体成员个数
k = fileds(i); %第i个结构体成员名,返回cell
key = k{1}; %cell转化为str
value = s.(key); % 引用结构体成员 s.a 与 s.('a') 都可以调用改结构体的成员进行操作
eval(['variable_',num2str(key) ' = ' num2str(value)]) % 使用eval函数动态创建variable_%s的变量。
end
参考:[1] matlab循环遍历struct结构体.
002. matlab生成不重复随机整数
生成M个范围属于1-N的不重复随机整数(M≤N),利用Matlab自带函数randperm函数可以实现。randperm(n)可以产生1到n的无重复随机整数序列。
a= randperm(10) % 首先产生1到10的随机序列
b = a(1:6) % 抽取其中六个,即实现了生成6个属于[1,10]的不重复随机数。
参考:[1] matlab之生成不重复的随机整数.
003. matlab字符串拼接
习惯了python中直接用 + 拼接字符串, 忘记matlab中如何操作了。百度了下,matlab中常见的字符串拼接方式有: (1)[ str_a, str_b], (2) strcat(str_a, str_b)函数
%% 想要批量读取规则命名的txt文件,批量处理; CPBOut_x.txt
txt_name = ['OutOpt\' , 'CPBOut_', num2str(i), '.txt'];
fid = fopen(txt_name);
参考:[1] matlab怎么拼接字符串,拼接字符串的几种方法.