matlab批量生成和调用相似名称的若干矩阵—— eval命令

如需转载,请注明来源,谢谢合作。
若本文对您有一点点的帮助,欢迎点赞、评论和关注。您的鼓励和支持是我继续学习和分享的动力。
需要在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的列向量

猜你喜欢

转载自blog.csdn.net/wbj3106/article/details/82289204
今日推荐