全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
2861 6
2008-05-04

有矩阵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编辑过]

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2008-5-4 09:00:00

第一问 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

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-5-4 09:05:00

第一问自己做了.还有第二问....如果第一问有更简单的方法也请告诉我.谢谢

第一问:

for i=2:3
B(:,i-1)=A(:,i)./A(:,1);
end

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-5-4 09:07:00

for i=1:2

B(:,i)=A(:,i*2)./A(:,1);
end

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-5-4 09:22:00
以下是引用lingyunzhi在2008-5-4 9:07:00的发言:

for i=1:2

B(:,i)=A(:,i*2)./A(:,1);
end

这样可以做, 但我要用2和4列的主要意思是想任意的不连续的组合....不过一次性的估计是不行了.....我的方法是,不知道还有没有更简单的方法,觉得还是很麻烦,每一个连续段都要用一次loop:

第二问:

for i=2
B(:,i-1)=A(:,i)./A(:,1);
end

for i=4
B(:,i-2)=A(:,i)./A(:,1);
end

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2008-5-4 09:48:00

你可以把你所需的任意不连续的组合先存为一个向量,比如说

C=【1 2 6 45 444】,然后用

for i=1:length(C)

B(:,i)=A(:,C(i))./A(:,1)

end

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群