用matlab命令求n行矩阵,第2行对应元素除第一行,第3行对应元素除第一行元素,等等,第n行对应元素除第一

如题所述

据我所知,好像没有现成的函数可以直接调用解答你的问题,但我们可以自己编制一个新的函数来解决。
解答步骤如下:
编制如下函数:

function A=n2one(B)
%变换,矩阵的各行除以第一行产生新的矩阵
[a,b]=size(B);
if a<=1
A=B;
else
for m=2:a
for n=1:b
B(m,n)=B(1,n)./B(m,n);
end
end
end
A=B;

将它保存为n2one.m文件,并将这个M文件放在你的MATLAB安装目录的work文件夹里。然后,就可以调用这个函数了。
比如我们要转变矩阵B=[1,2,3;5,6,7;4,5,6];

输入如下命令;
B=[1,2,3;5,6,7;4,5,6];
n2one(B)

输出结果:
ans =

1.0000 2.0000 3.0000
0.2000 0.3333 0.4286
0.2500 0.4000 0.5000

就是你要的结果。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-02-03
%设n行矩阵为A,待求结果放入矩阵B
B=[];
for i=1:n-1
B=[B;A(i+1,:)./A(1,:)];
end
B
第2个回答  2010-02-07
a为n行矩阵
for i=1:n-1
b(i,:)=a(i+1, :)./a(1, :);
end
相似回答