matlab中变量名称怎样定义可随循环次数变化
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab中变量名称怎样定义可随循环次数变化相关的知识,希望对你有一定的参考价值。
就是第一次循环可以定义出A1,第二次循环可以定义出A2,……
我用for i=1:n
A(i)=……
end
貌似不对啊~
哪位高手帮忙解答一下,谢啦。。
再循环中则表示为
for i=1:n
A(i,:)=……
end
或者你可以试试先赋值,循环前添加:A=zeros(1,n);
由于初学者的程序总是有一些小毛病,所以仔细是必须的,但这得靠自己,祝你好运! 参考技术A Matlab里 给的解释是:
Because MATLAB resets the loop index to the next value when it returns to the top of the outer loop,it ignores any changes that took place within a nested loop.
貌似不可以这样做,想要得到你期望的结果,可以这样写:
j=1;
for i=1:3:10
n(j)=i;
j=j+1;
end 参考技术B for i=1:n
eval(['A',num2str(i),'=',num2str(变量名),';']);
end
实例:
n=5;
for i=1:n
eval(['A',num2str(i),'=',num2str(n^2),';']);
end本回答被提问者和网友采纳
matlab中eval语句循环变量的问题
for j=1:19
for i=1:19
eval(['T','=','a',num2str(j),'==','b',num2str(i),';'])
eval(['s(num2str(j),num2str(i))','=','sum(T(1:1980,1))',';'])
end
end
这程序理论上会生成一个19*19的S矩阵
可我生成的是57*57的矩阵 错在哪
如aj=bi写在eval里是这样的 eval(['a' num2str(j) '=b' num2str(i)]) 只有起变化的部分打断原来的语句,其余部分用单引号保留,被连接的字符串之间留空格或逗号。eval(['T=a' num2str(j) '==b' num2str(i) ';']) eval(['s(' num2str(j) ',' num2str(i) ')=sum(T(1:1980,1));'])追问
貌似不是这出的问题,不过谢谢哈,确实不太熟悉matlab
参考技术A a、b是向量吗,出错在第一名eval追问a,b是向量,各有19个值,即a1,a2,a3,a4,....,a19,b1,b2,b3,....,b19
追答应该改成这样:
eval(['T=a(' num2str(j) ')==b(',num2str(i),');'])
才能引用a向量中的元素a(1)、a(2)等。
以上是关于matlab中变量名称怎样定义可随循环次数变化的主要内容,如果未能解决你的问题,请参考以下文章
命名工作区变量并将其保存到名称中更改数字的文件中 - Matlab