作业帮 > 综合 > 作业

matlab中的一个子函数:循环得到的多个矩阵,为什么只能调用最后的那个矩阵,如何调用所有的矩阵?

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/04/28 06:23:18
matlab中的一个子函数:循环得到的多个矩阵,为什么只能调用最后的那个矩阵,如何调用所有的矩阵?
function [Ue]=km
[U]=rand(50,1);
nx=4;
ny=4;
for ely = 1:ny
for elx = 1:nx
n1 = (ny+1)*(elx-1)+ely;
n2 = (ny+1)* elx +ely;
Ue = U([2*n1-1;2*n1; 2*n2-1;2*n2; 2*n2+1;2*n2+2; 2*n1+1;2*n1+2],1);
end
end
这里得到的Ue有16个矩阵,可是调用这个子函数只能用到最后的那个矩阵.还有怎样将得到的所有矩阵相加?
matlab中的一个子函数:循环得到的多个矩阵,为什么只能调用最后的那个矩阵,如何调用所有的矩阵?
function [Ue]=km
[U]=rand(50,1);
nx=4;
ny=4;
Ue=[];
for ely = 1:ny
for elx = 1:nx
n1 = (ny+1)*(elx-1)+ely;
n2 = (ny+1)* elx +ely;
Ue = Ue +U([2*n1-1;2*n1; 2*n2-1;2*n2; 2*n2+1;2*n2+2; 2*n1+1;2*n1+2],1);
end
end
%以上得到的是相加过的
再问: 没有啊,还是得到Ue的最后那个矩阵。如何将得到的16个Ue矩阵写成元胞数组形式,主函数调用就可以一起调用这16个矩阵???
再答: 请问你说的最后那个矩阵是不是ely=4,elx=4时的矩阵,如果是,那我上面的程序应该是累和过的, Ue = Ue +U([2*n1-1;2*n1; 2*n2-1;2*n2; 2*n2+1;2*n2+2; 2*n1+1;2*n1+2],1);,这段代码改过的,和你不一样的,要注意,你如果要cell型的话,可以改成:
function [Ue]=km
[U]=rand(50,1);
nx=4;
ny=4;
Ue=[];
m=1;
for ely = 1:ny
for elx = 1:nx
n1 = (ny+1)*(elx-1)+ely;
n2 = (ny+1)* elx +ely;
Ue {m}= U([2*n1-1;2*n1; 2*n2-1;2*n2; 2*n2+1;2*n2+2; 2*n1+1;2*n1+2],1);
m=m+1;
end
end