有矩阵A=[1 2 3 4;4 5 6 7;7 8 9 10 ] (3X4)
我想生成矩阵B (3X2)
第一问: B的第一列为: A的第2列除以A第1列对应的值, B的第2列为:A的第3列除以A的第1列对应的值.
第二问:B的第一列为: A的第2列除以A第1列对应的值, B的第二列为:A的第4列除以A的第1列对应的值.
要批量生成的,因为我实际的A和B都是相当庞大的矩阵,
[此贴子已经被作者于2008-5-4 9:56:22编辑过]
请注明:姓名-公司-职位
以便审核进群资格,未注明则拒绝
第一问 B(:,1)=A(:,2)./A(:,1);B(:,2)=A(:,3)./A(:,1);B,可得B =
2.0000 3.0000 1.2500 1.5000 1.1429 1.2857
第二问B(:,1)=A(:,2)./A(:,1);B(:,2)=A(:,4)./A(:,1);B,可得B =
2.0000 4.0000 1.2500 1.7500 1.1429 1.4286
第一问自己做了.还有第二问....如果第一问有更简单的方法也请告诉我.谢谢
第一问:
for i=2:3B(:,i-1)=A(:,i)./A(:,1);end
for i=1:2
B(:,i)=A(:,i*2)./A(:,1);end
这样可以做, 但我要用2和4列的主要意思是想任意的不连续的组合....不过一次性的估计是不行了.....我的方法是,不知道还有没有更简单的方法,觉得还是很麻烦,每一个连续段都要用一次loop:
第二问:
for i=2B(:,i-1)=A(:,i)./A(:,1);end
for i=4B(:,i-2)=A(:,i)./A(:,1);end
你可以把你所需的任意不连续的组合先存为一个向量,比如说
C=【1 2 6 45 444】,然后用
for i=1:length(C)
B(:,i)=A(:,C(i))./A(:,1)
end