matlab中,如何用多个定量循环赋值给一个高阶矩阵呢?

现在有60个定量,定义为m1,m2,m3,m4……m60,需要把他们循环赋值到一个60阶的方阵中,矩阵的形式是:
m1 m2 m3 m4 m5 …… m59 m60
m2 m1 m2 m3 m4 …… m58 m59
m3 m2 m1 m2 m3 …… m57 m58
m4 m3 m2 m1 m2 …… m56 m57
……
m60 m59 m58 m57 m56 …… m2 m1

求大佬教导一下如何用循环语句赋值呢

a = 1:60;             % 1到60分别对应与m1,m2,…,m60

m = length(a);

A = zeros(m,m);    % 初始化矩阵

for i =1:m

    tmplens = m-i+1;

    A(i,i:end) = a(1:tmplens);  % 沿对角线分别对行、列赋值

    A(i:end,i) = a(1:tmplens)';

end

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-11-26
二重循环很简单就搞定了

matlab中如何将循环语句产生的多个数据结果存储到一个矩阵中并调用?
r=zeros(1,10);for i=1:10 n=i+5;r(i)=n;m=n*2;end

MATLAB怎么把一个式子算出的好多数赋值给一个矩阵
你的z应该是一个3*3矩阵,应该写作z=zeros(3,3)程序修改如下:x=[1 4 5 ]'z=zeros(3,3);for i=1:1:3 for j=1:1:3 y=2*i*x(i)+j*x(i)z(i,j)=y;end end 如果满意就采纳吧吧

matlab怎样将循环输出的数据结果放进一个矩阵中?
n=10;\\x0d\\x0aB=zeros(1,n);\\x0d\\x0afork=1:n\\x0d\\x0ar=k;%运算后数据\\x0d\\x0aB(k)=r;%存入矩阵内\\x0d\\x0aend;

matlab 如何将for每循环一次产生的矩阵合并成一个大矩阵
搞定了,绝对是最简洁,运行效率最高的算法,就是不知道你能不能看懂。程序如下:clear;clc;x = rand(10,5); %%%%% 自己定义的矩阵 K = 3;[a b] = size(x);for ii = 1:K var = x(ii:K:a,:);eval(strcat( 'A',num2str(ii),'=var'));end 结果:A1 = 0.2137 0.6...

matlab数组循环赋值
在 MATLAB 中,通过循环遍历数组元素并进行赋值操作,常用于执行逐元素的计算任务。以下示例展示如何使用循环更新数组元素值:首先,创建一个 3x3 零矩阵A。接着,采用嵌套循环遍历矩阵元素,执行计算或赋值操作。此处,每个元素值被设置为行号乘以列号。最终,使用 disp 函数展示更新后的矩阵 A。循环赋值...

matlab中用for循环生成的n个单个数据怎么放入一个矩阵里
clc clear for i=1:40 if mod(i,2)==0 y(i)=0;else y(i)=1 end end Y=reshape(y,4,10)

matlab怎么将输出的多个数字结果变为一个矩阵?
if abs(vc(1,j)-a)<=abs(vc(1,j)-b)&&abs(vc(1,j)-a)<=abs(vc(1,j)-c)d(i)=vc(1,j);i=i+1;end;end >> d d = 1 7 4 1 你说的为什么加分号就只输出一个值,是因为软件自己设置成这样的,加分号输出的是循环完成后的结果,不加的话系统会把每一次循环结果...

matlab把一个矩阵的某些元素赋值给另一个矩阵
matlab把一个矩阵的某些元素赋值给另一个矩阵 5 大家来帮我看看下面的这个代码AAnum=zeros(6,Len);fori=1:6forj=1:LenAAnum(i,j)=Properties_center_stand(i,strfind(S0,tline(j)));endend其中SO是已知的一个只有20个字符的矩阵,而... 大家来帮我看看下面的这个代码AAnum=zeros(6,Len); for i...

matlab中如何将求得的多个数值放入矩阵中
A = randint(1,20,[2 5])fn = 3;id = find(A==fn)A = 2 3 5 2 2 2 2 4 3 2 2 4 3 5 3 3 5 4 2 4 id = 2 9 13 15 16

MATLAB中如何将利用循环等式产生的中间值存储到一个矩阵中,最后会用这...
1、把新的结果存在下标为end+1的位置,数组会自动扩展,例如:A=[]; for i=1:10, A(end+1)=i^2; end 2、预置数组(一般使用zeros),并设置一个计数器标记数组当前的存储位置,然后用该计数器作为下标进行存储。例如:A=zeros(10000,1); idx=0; while idx<10000, idx=idx+1; A(idx)...

相似回答