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

2021-04-13 01:51:10 字數 1974 閱讀 7574

1樓:噠噠噠噠你個頭

在來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、持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

2樓:匿名使用者

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 中,怎麼讓一個矩陣按某一列排列,且行也跟著變動?

3樓:金星緯衣承

升序排列:

[~,i]=sort(a(:,5));%假如對第5列進行升序排列內a=a(i,:);%這樣排列就完成了

降序排列:容

[~,i]=sort(-a(:,2));%假如對第2列進行升序排列a=a(i,:);%這樣排列就完成了

希望我的回答能夠幫到你

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

4樓:匿名使用者

升序排列:

[~,i]=sort(a(:,5));%假如對第5列進行升序排列

內a=a(i,:);%這樣排列就完成容了

降序排列:

[~,i]=sort(-a(:,2));%假如對第2列進行升序排列a=a(i,:);%這樣排列就完成了

希望我的回答能夠幫到你

在matlab中,如何實現將一個矩陣按行或列進行隨機的重新排序?

5樓:匿名使用者

假設行數或列數為n

vector = randperm(n);

vector是從1到n的整數隨機排列的向量按照vector裡各個元素的值重

新排列行列向量就可以了

假設待排列矩陣為m,排列後的矩陣為a

按列隨機排列

a = zeros(size(m));

for i=1:n

a(:,i)=m(:,vector(i));end

matlab怎麼把一個矩陣的列按某行元素的大小排列

6樓:不好好改就革

比如把a的每一列按照a的第一行元素大小排列。

[~,idx]=sort(a(1,:));

a=a(:,idx)

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

7樓:天天小布丁

你的意思是排序嗎?可以使用sortrows函式:

sortrows(a,k) 將矩陣a按第k列排序,每一行跟著變動

matlab中怎麼將mn矩陣變成mn維一列的

使用reshape x m,n 函式 reshape把指復定的矩制陣改變形狀,但是元素個數bai不變,例如,du行向zhi 量 a 1 2 3 4 5 6 執行下面語dao句把它變成3行2列 b reshape a,3,2 執行結果 b 1 4 2 53 6若a 1 2 3 4 5 6 7 8 9 ...

在matlab中怎麼求矩陣中大於某個數的元素個數,以及元素的總數

a 1 2 3 5 3 5 3 2 sum sum a 3 a,b size a a b 大於3 prod size a 3 一共 prod size a matlab裡,怎麼得到一個矩陣所含的元素個數 假設你的矩陣是a,維數你自己看著辦 length a 這個能得到你要的元素個數如果你要非重複的元...

請問Matlab中怎麼把一維陣列逆序排列,如將a

用 b fliplr a fliplr左右翻轉矩陣 語法 b fliplr a 將矩陣a的列繞垂直軸進行左右翻轉matabc如果a是一個行向量,fliplr a 將a中元素的順序進專行翻轉。如果a是一個列向量,fliplr a 還等於a。用 baib fliplr a fliplr左右翻轉矩陣 語法...