matlab 如何以动态的变量名保存变量
答案:2 悬赏:70 手机版
解决时间 2021-11-29 11:45
- 提问者网友:刺鸟
- 2021-11-28 23:12
matlab 如何以动态的变量名保存变量
最佳答案
- 五星知识达人网友:夜风逐马
- 2021-11-29 00:34
%%% =============== hujia1.m ========================
%%%
%%% 方法一 用sprintf与eval组合
%%% 可以边生成代码边执行,及其灵活
%%% 但在次数很多的循环体内部尽量不要使用
%%% 因为eval需运行时编译,速度不快
for i=3:5
s=sprintf('m%d=magic(%d);save hujia.mat m%d;',i,i,i); % 对i的每个取值生成一行不同的代码
eval(s); % 执行生成的代码
end
%%% =============== hujia2.m ========================
%%% 方法二 用函数的方式使用save就行了
%%% 在matlab里,像save,print等都有两种使用方式:
%%% 函数形式: save(filename,varname)
%%% 例:x1=rand(3,3);save('hujia.mat','x1');
%%%
%%% 命令形式: save filenam varname
%%% 例:x1=rand(3,3);save 'hujia.mat' x1
m=[];
for i=3:5
m(i)=magic(i);
s=sprintf('m(%d)',i);%生成变量名
save('hujia.mat',s);
end
%%% ================================================
%%%
%%% 方法一 用sprintf与eval组合
%%% 可以边生成代码边执行,及其灵活
%%% 但在次数很多的循环体内部尽量不要使用
%%% 因为eval需运行时编译,速度不快
for i=3:5
s=sprintf('m%d=magic(%d);save hujia.mat m%d;',i,i,i); % 对i的每个取值生成一行不同的代码
eval(s); % 执行生成的代码
end
%%% =============== hujia2.m ========================
%%% 方法二 用函数的方式使用save就行了
%%% 在matlab里,像save,print等都有两种使用方式:
%%% 函数形式: save(filename,varname)
%%% 例:x1=rand(3,3);save('hujia.mat','x1');
%%%
%%% 命令形式: save filenam varname
%%% 例:x1=rand(3,3);save 'hujia.mat' x1
m=[];
for i=3:5
m(i)=magic(i);
s=sprintf('m(%d)',i);%生成变量名
save('hujia.mat',s);
end
%%% ================================================
全部回答
- 1楼网友:鸽屿
- 2021-11-29 00:55
for i=1:3
x=i;
save vars.mat x;
end
我试了下,vars.mat中保存的x就是3,其实是经过了三个循环,第一次x保存的是1,第二次是2,循环结束,保存最后一个值3,这样保存的值就随着i的动态变化而变化了.
不知你要的是不是这结果.
x=i;
save vars.mat x;
end
我试了下,vars.mat中保存的x就是3,其实是经过了三个循环,第一次x保存的是1,第二次是2,循环结束,保存最后一个值3,这样保存的值就随着i的动态变化而变化了.
不知你要的是不是这结果.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯