【发布时间】:2018-07-16 01:57:23
【问题描述】:
我需要在矩阵“A”的每一列中找到最小值,然后将这些最小值替换为矩阵“B”的最后一行(具有相同的列数)中的值。就像我有这些:
>> A = randi(10,10,5)
A =
3 5 9 5 8
7 6 4 10 2
8 4 1 7 4
4 7 2 8 2
7 5 8 7 5
3 7 10 10 1
5 7 8 5 7
8 3 8 2 3
6 10 2 1 10
3 7 6 7 2
>> B = randi(100,3,5)
B =
10 34 66 18 62
99 95 49 54 81
52 1 52 9 95
>> [M,I] = min(A)
M =
3 3 1 1 1
I =
1 8 3 9 6
我想用“B(end,:) 替换“M”的值,这样:
A(1,1) = B(end,1);
A(8,2) = B(end,2);
A(3,3) = B(end,3);
A(9,4) = B(end,4);
A(6,5) = B(end,5);
我尝试了"A(I) = B(end,:)" 和"A(I(1,:)) = B(end,:)",但它们不起作用!任何想法我怎么能做到这一点?我的真实矩阵很大(1200x100000),所以无法手动完成!
【问题讨论】:
-
A(sub2ind(size(A),I,1:size(A,2))) = B(end,:)会起作用,尽管可能有更好的方法 -
不工作到底如何?