-2
創建這個矩陣我有一個載體,諸如如何在MATLAB
A=[4;3;1;6]
,我想從A
B=[6 5 4 3 2 1;4 3 2 1 0 0;3 2 1 0 0 0;1 0 0 0 0 0];
創建與下面的元素的矩陣我怎樣才能在MATLAB中做這個?列的數量等於A的最大值。
創建這個矩陣我有一個載體,諸如如何在MATLAB
A=[4;3;1;6]
,我想從A
B=[6 5 4 3 2 1;4 3 2 1 0 0;3 2 1 0 0 0;1 0 0 0 0 0];
創建與下面的元素的矩陣我怎樣才能在MATLAB中做這個?列的數量等於A的最大值。
這裏有兩種方法可以做到這一點:一個是矢量化的,一個是循環的。
A=[4;3;1;6];
B = max(bsxfun(@minus, sort(A, 'descend'), 0:(max(A)-1)), 0);
或
S = sort(A, 'descend');
m = numel(A); n = S(1);
C = zeros(m,n);
for k = 1:m
C(k,1:S(k)) = S(k):-1:1;
end
結果:
B =
6 5 4 3 2 1
4 3 2 1 0 0
3 2 1 0 0 0
1 0 0 0 0 0
這個問題不清楚。 B存儲A中元素的索引(因爲A只有4個元素,而在maltab中沒有0索引)。你希望在A和B之間獲得的關係對我而言並不清楚。 –
循環出了什麼問題?循環是非常有用的東西。在這種情況下,循環可能是最合乎邏輯的使用。 – beaker
你想要列數是一個固定值,還是等於'A'的最大值?你有嘗試過什麼嗎?你有任何代碼嗎? – beaker