如需转载,请注明来源,谢谢合作。
若本文对您有一点点的帮助,欢迎点赞、评论和关注。您的鼓励和支持是我继续学习和分享的动力。
需要在matlab中新建多个名称相似的矩阵,如果一个个新建就很繁杂。运用eval()命令将大大节省工作量,在后续调用这些新建的矩阵时也更为方便。
例如:需要生成名称为W1,W2,……,W10等十个矩阵,并在后续程序中进行调用,这是就需要matlab里的eval()命令了。如下程序:
eval()的举例:
%现需计算A=W(k)*E,k=1,2,……,10。即将10个W(每个W是8*8的方阵)分别乘以E(E是10个8*1的列向量构成的矩阵,也可简单认为是一个8*10的矩阵)的各个列
%因此A=W(k)*E是8*10的矩阵
%首先,选中下方摁f9,生成W1,W2,…,W10和A
%{
clear
for i = 1 : 10 %生成W1,W2,…,W10
eval(['W',num2str(i), ' =0']) %运用eval()创建W1,W2,…,W10
end
E=[] %E为8*10
A=[] %A=W(k)*E
%}
W={} %创建一个新的细胞元cell W,将W1,W2,…,W10等10个矩阵装载到细胞元W中
for j=1:10
W{j}=eval(['W',num2str(j)]);
end
for k=1:10
A(:,k)=W{k}*E(:,k) %调用细胞元W,第k个W乘以E的第k列,构成A的第k列。即计算了A=W(k)*E,A为8*10
end
a=A(:) %另外,也可把A变成一个80*1的列向量