matlab 批量运算命名变量
matlab有1:300个变量a1,a2,a3.....现在需要对这300个变量做一个批量相同的运算类似data1=a1(:);,data2=a2(:);.......输...
matlab 有1:300个变量a1,a2,a3.....
现在需要对这300个变量做一个批量相同的运算
类似data1=a1(:);,data2=a2(:);.......
输出的变量data也需要批量命名:data1,data2,data3,.......
私以为可以使用eval函数,但能力有限只能做到对其中一个变量进行批量重命名,无法对两个变量都进行批量重命名,麻烦各位大佬指点。 展开
现在需要对这300个变量做一个批量相同的运算
类似data1=a1(:);,data2=a2(:);.......
输出的变量data也需要批量命名:data1,data2,data3,.......
私以为可以使用eval函数,但能力有限只能做到对其中一个变量进行批量重命名,无法对两个变量都进行批量重命名,麻烦各位大佬指点。 展开
3个回答
展开全部
. 默认情况下,M函数文件中定义及使用的变量都是局部变量只在本函数的工作区内有效,一旦退出该函数,即为无效变量,所以程序如果写成函数不用担心会混。 2.命令行或M命令文件中定义和使用的变量都是全局变量,退出命令行后仍有效,如果怕混可以再程序的开头加上 clear 命令。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
比如说在E:\new下有一系列txt文件,文件名符合matlab变量名的命名规则,并且没有temp.txt文件,每个文件有两列,以空格分割,第一列是字符串,第二列是浮点数字,要读取第二列的浮点数字为数组并以文件名为变量名。
file=dir('E:\new\*.txt');
for n=1:length(file)
temp=dlmread(['E:\new\',file(n).name],' ',0,1);
eval([file(n).name(1:end-4),'=temp;'])
end
file=dir('E:\new\*.txt');
for n=1:length(file)
temp=dlmread(['E:\new\',file(n).name],' ',0,1);
eval([file(n).name(1:end-4),'=temp;'])
end
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用 eval 和 num2str 命令结合使用。
e.g.
for n = 1:300
eval(['f=a',num2str(n)]);
f = f(:);
eval(['data',num2str(n),'=f']);
end
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询