matlab矩陣排序後如何顯示排序後的元素在原矩陣中的位置

2021-04-13 01:51:10 字數 3179 閱讀 8737

1樓:書宬

a=[12 43 4 65 2 1];

[c d]=sort(a)

matlab 矩陣排序後如何顯示排序後的元素在原矩陣中的位置

2樓:匿名使用者

x=[45 65 23 12 78];[a,b]=sort(x);

sort是從小到大排列,a是排序後結果,b是a結果中各元素的原始位置。

3樓:書宬

a=[12 43 4 65 2 1];

[c d]=sort(a)

怎樣返回原來矩陣中的元素在排序之後矩陣中的位置

4樓:小樂笑了

需要之前的位置,那就需要先做個拷貝,然後將新矩陣中的元素,對原矩陣進行查詢,即可

matlab中要把矩陣中的元素降序排列怎麼辦?

5樓:匿名使用者

sort(a)若a是向量,

預設都是對a進行升序排列。

sort(a)是預設的升序,而sort(a,'descend')是降序排序。

sort(a)若a是矩陣,預設對a的各列進行升序排列sort(a,dim)其中dim=1時等效sort(a),dim=2時表示對a中的各行元素升序排列

6樓:匿名使用者

升序排列,sort(a,'ascend')

降序排列sort(a,'descend')

matlab利用sort排序後,如何取得排序後每個元素在原來矩陣中的行下標和列下標?

在matlab,對一個數列排序後,怎樣得到原數列的各個元素在排序後的數列的位置?

7樓:匿名使用者

在matlab中常用sort函式對數列進行排序[b,i] = sort(a)

這樣得到的b序列就是a序列中元素從小到大排列的序版列而sort函式不單隻能返回權一個序列b,還能返回第二個引數i這裡i就是排序後數列各元素在原序列中的位置,也就是b=a(i);

這時候只要再對i排序一次

[c,ii]=sort(i)

得到的ii就是原數列的各個元素在排序後的數列的位置,也就是a=b(ii);

8樓:匿名使用者

假如你要排序的陣列是 a,那麼:

[b,i] = sort(a)

返回的 b 是排序後的陣列,i 是對應元素原來在專 a 中的位置。

比如:a = [79, 39, 25, 41, 10];

[b, i] = sort(a)

% >>>

% b =

%     10    25    39    41    79% i =

%      5     3     2     4     1觀察 i,第一屬個元素是 5。這就表示,原來的第 5 個元素,排序後在第 1 的位置。

這個元素的值是 10,即是 b(1)。如果你只關心 i 對排序後的陣列不感興趣,也可寫成:

[~,i] = sort(a)

這樣就只返回 i,不返回 b 了。

9樓:匿名使用者

用sort函式排序的話,[sx,index] = sort(x) ,排序後,sx是排序好的向量,index是 向量sx中對x 的索引。

10樓:匿名使用者

如果你用的是sortrows函式,那麼可以這樣寫:[y,i]=sortrows(a);

其中y是排序後的數列,i是排序後元素在原來的數列中的位置。

在matlab中,將矩陣a升序排列後,如何讓和a等size的b中的元素位置跟著a調整?

matlab如何找出一個矩陣中的前n個最小項所在的位置

11樓:真

clear;clc

a=rand(10)%隨機生成一個矩陣,自己改t=sort(a(:));

[m,n]=find(a<=t(20),20);

t=[m,n]%前20個最小項在矩陣a中的位置[行,列]

12樓:匿名使用者

subarray = a( 1 : 20 );

[ minvalue, index ] = min( subarray );

index就是你想要的了。

13樓:匿名使用者

用matlab有點困難,會其他語言嗎

matlab 中,怎麼讓一個矩陣按某一列排列,並且行也跟著變動?

14樓:噠噠噠噠你個頭

在來matlab中讓矩陣按某一列排列,源

需要用到bai

排序演算法對某一du列資料排序,然後在排序算zhi法的if判斷句中,dao依次交換矩陣兩行內容。

以題目中矩陣為例,可以利用冒泡法對第三列資料排序,實現程式如下:

a=[5 7 8;4 6 1;8 0 7];

n=length(a);b=;

for i=1:n-1

for j=1:n-i

if(a(j,3)>a(j+1,3))

b=a(j,:);a(j,:)=a(j+1,:);a(j+1,:)=b;

endend

enddisp(a)

通過程式即可實現將程式按第三列排列。

擴充套件資料氣泡排序演算法原理:

1、比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。

2、對每一對相鄰元素做同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。

3、針對所有的元素重複以上的步驟,除了最後一個。

4、持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

15樓:匿名使用者

a=[5 7 8

4 6 1

8 0 7]

a =5 7 8

4 6 1

8 0 7

>> sortrows(a,3)

ans =

4 6 1

8 0 7

5 7 8

matlab中如何將多個矩陣儲存到同矩陣中

將a,b,c合併成d,然後再一次性儲存為txt.d a b c 讀入到txt建議用dlmwrite函式 例如 有100個同維數的矩陣,使其從左到右的順序儲存到同一個txt檔案中。example a,b,c,d是25 3的矩陣 儲存在txt檔案中後的形式是 a b c d 程式設計了25 12的矩陣。...

matlab如何實現矩陣的第一列所有元素乘以

如果想把 copy乘以x的結果存回a,可以用 a 1 a 1 x a 1,2 2,2 a 1 2 2 2 x 3 a 1 a 1 x a 3 2 6 2 a 1 x 就行了 matlab 矩陣的每列元素都乘以一個列向量,怎麼實現?matlab矩陣的一列中所有元素都乘以一個數,但不同的列所乘的數不同,...

matlab中如何把矩陣對應成有顏色的網格

p 0.2920 0.5625 0.2009 0.4740 0.9561 0.3756 0.7694 0.4906 0.8580 0.6166 0.2731 0.9090 0.5955 0.1662 0.4442 0.4093 0.3358 0.1133 0.6262 0.5962 0.0287 0...