我想在MATLAB中創建一個類矩陣,而不使用for循環。所以,我有A
:創建沒有for循環的類矩陣
A = [ 1 2 3 4;
2 5 4 1;
7 2 3 4];
現在我想創建一個類矩陣,所以我想尋找每一列和任何的最高值位置將成爲「1」。因此,使用A
,我想B
看起來像這樣:
B = [ 0 0 0 1;
0 1 0 0;
1 0 0 0];
我一直在嘗試使用下面的代碼來創建B
矩陣,然後搜索使用下面的代碼中的每一列的最大值:
[rows_A columns_A] = size(A);
B = zeros(rows_A, columns_A);
max(A, [], 2);
然後我試圖使用ind2sub
得到內A
的位置,這樣我就可以把一個「1」在B
矩陣。這種方法沒有解決。矩陣A
可以是任何尺寸。任何幫助是極大的讚賞。
...如果你想在每行中_only的first_最大,你可以使用以下(仍然一行,固然不是很清楚但嘿): 'DIFF([零(大小(A,1),1)邏輯(cumsum(bsxfun(@eq,A,max(A,[],2)),2))],[],2)' –