请问eval嵌套后为​什么会出现生成的矩阵​维数不同现象。

16 visualizaciones (últimos 30 días)
百家乐网站|网址【微8785092】
C=[];
S1=1;
S2=2;
S3=3;
S4=4;
for i=1:4
eval(['c',num2str(i),'=',num2str(eval(['S',num2str(i)'])^2)']);
eval(['C=[C c',num2str(i),']']);
end
运行后显示:错误使用 horzcat,要串联的数组的维度不一致。如果改成:
C=[];
for i=1:4
eval(['c',num2str(i),'=',num2str(i)']);
eval(['C=[C c',num2str(i),']']);
end
就没有问题了。
这个程序是用于将读取的数据进行运算后生成结果的行向量,用于下一步运算,因此必须按照第一个程序那样边写,S1/2/3/4是我为了测试程序随便给出的数值,实际是读取数据文件中的值得到,然后进行运算。这个平方的运算也是随便给出的,用于测试程序。
问题简化一下就是:eval函数里怎么写一个函数运算,这个函数的结果需要根据i的循环赋给Ci,同时它的自变量为Si,都与i相关。同时保证ci为一个行向量的元素,将所有ci合成为一个行向量C

Respuesta aceptada

百家乐网站|网址【微8785092】
C=[];
S1=1;
S2=2;
S3=3;
S4=4;
for i=1:4
eval(['c',num2str(i),'=',num2str(eval(['S',num2str(i),'^2']))]);
eval(['C=[C c',num2str(i),']']);
end

Más respuestas (0)

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!