请问eval嵌套后为什么会出现生成的矩阵维数不同现象。
10 ビュー (過去 30 日間)
古いコメントを表示
百家乐网站|网址【微8785092】
2023 年 5 月 25 日
回答済み: 百家乐网站|网址【微8785092】
2023 年 5 月 25 日
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
0 件のコメント
採用された回答
百家乐网站|网址【微8785092】
2023 年 5 月 25 日
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
0 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Creating and Concatenating Matrices についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!