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函数,但能力有限只能做到对其中一个变量进行批量重命名,无法对两个变量都进行批量重命名,麻烦各位大佬指点。
展开
 我来答
智者总要千虑
高粉答主

2019-06-04 · 说的都是干货,快来关注
知道顶级答主
回答量:7.9万
采纳率:88%
帮助的人:1.3亿
展开全部
. 默认情况下,M函数文件中定义及使用的变量都是局部变量只在本函数的工作区内有效,一旦退出该函数,即为无效变量,所以程序如果写成函数不用担心会混。 2.命令行或M命令文件中定义和使用的变量都是全局变量,退出命令行后仍有效,如果怕混可以再程序的开头加上 clear 命令。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
l7722526
2019-06-04 · TA获得超过2.7万个赞
知道大有可为答主
回答量:2.8万
采纳率:84%
帮助的人:3709万
展开全部
比如说在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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
注水学术小卡拉米
2019-06-04 · 专注学术20年的小卡拉米
注水学术小卡拉米
采纳数:45 获赞数:137

向TA提问 私信TA
展开全部

用 eval 和 num2str 命令结合使用。

e.g.

for n = 1:300
    eval(['f=a',num2str(n)]);
    f = f(:);
    eval(['data',num2str(n),'=f']);
end
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式