matlab中eval语句循环变量的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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中eval语句循环变量的问题的主要内容,如果未能解决你的问题,请参考以下文章