matlab中sort的函式怎麼實現像excel中使MX

時間 2021-07-01 01:31:31

1樓:匿名使用者

a=rand(100,100);

tic[b,pos]=sort(a(:,1));

aa=a(pos,:);

toctic

a=sortrows(a,1);

tocdet(aa-a)

前面的演算法時間要短,效果是一樣的

elapsed time is 0.000110 seconds.

elapsed time is 0.000259 seconds.

ans =

0用個小矩陣檢測下

a=magic(5);

tic[b,pos]=sort(a(:,1));

aa=a(pos,:)

toctic

a=sortrows(a,1)

tocdet(aa-a)

a =17 24 1 8 1523 5 7 14 164 6 13 20 2210 12 19 21 311 18 25 2 9aa =

4 6 13 20 2210 12 19 21 311 18 25 2 917 24 1 8 1523 5 7 14 16elapsed time is 0.000133 seconds.

a =4 6 13 20 2210 12 19 21 311 18 25 2 917 24 1 8 1523 5 7 14 16elapsed time is 0.000223 seconds.

ans =0

2樓:匿名使用者

>> a=[1:4;5:8;2:5]

a =1 2 3 45 6 7 8

2 3 4 5

>> sortrows(a,1)

ans =

1 2 3 4

2 3 4 5

5 6 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 利用sort排序後,如何取得排序後每個元素在原來矩陣中的行下標和列下標?

5樓:我行我素

你用的語bai

法句式是對的,du但b不是行列下標zhi,而是線性下標,可進行轉dao換,如:

[a,b]=sort(pv3(:),'descend');

[r,c]=ind2sub(size(pv3),b);

r,c就是a中元素在排回序前的行列答下標。

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

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

6樓:我行我素

你用的抄語法句式是對的,但b不是行列下標,bai而是線性下標,可du進行轉換,zhi如:

[a,b]=sort(pv3(:),'descend');

[r,c]=ind2sub(size(pv3),b);

r,c就是a中元素在排

dao序前的行列下標。

matlab一個儲存x,y座標的兩列矩陣,怎麼對矩陣先按照x座標排序,然後對x相同的按照y座標排序。

7樓:上善若水

function [ sortedmat ] = twophasesort(  mat, n1, n2 )

sortedmat = zeros(size(mat));

partialsortedmat = sortrows(mat,n1);

n1value = (tabulate(partialsortedmat(:,n1)));

startrows = 0;

for i = 1:size(n1value,1)

sortedmat((startrows+1):(startrows+n1value(i,2)) , :) = sortrows(partialsortedmat((startrows+1):

(startrows+n1value(i,2)) , :),n2);

startrows = sum(n1value(1:i,2));

endend

上面是一個函式檔案中的全部內容,輸入二維陣列mat和指定的列n1、n2。首先對mat的第n1列進行升序排序,再對n2列進行升序排序。輸入引數有三個:

mat:等待排序的二維陣列。陣列只要是二維即可,大小不限定。

n1:待排序的第一列。要求是不大於mat列數的正整數。

n2:待排序的第二列。要求是不大於mat列數的正整數。

返回值是經過排序的、大小與mat相同的陣列。

題主這裡只需要新建一個函式檔案,把裡面的內容清空,再把上面的**全部貼上進去,然後儲存。儲存之後,按照如下格式呼叫函式即可:

sorted = twophasesort(a, 1, 2);

_____________________________

如果想要獲取排序後的索引,可以使用下面的twophasesortpro。

function [ sortedmat,index ] = twophasesortpro(  mat, n1, n2 )

index = [1:size(mat,1)]';

matindex = [mat index];

sortedmatindex = twophasesort(  matindex, n1, n2 );

sortedmat = sortedmatindex(:,1:(end - 1));

index = sortedmatindex(:,end);

end由於在twophasesortpro中呼叫了twophasesort,所以要把兩個函式都儲存起來,也就是說,twophasesortpro.m和twophasesort.m要同時存在。

使用方法:

輸入引數有三個,和twophasesort相同。

輸出引數有兩個,第一個是經過兩次排序的陣列,第二個是索引(列向量)。

使用示範:

[sorted, index] = twophasesortpro(a, 1, 2);

8樓:匿名使用者

其實直接用load函式更方便

a=load('data.txt') %n*2矩陣直接讀取並儲存在a中

然後可以用迴圈

for: i=1:numel(a(:,1))ai=a(i,1);

bi=a(i,2);

fscanf 最低端, 一個一個字元讀都可以textread 是按行或者矩陣(每行格式相同)讀取load 最高階, 也限制最大, 讀取整塊同資料型別的矩陣

9樓:匿名使用者

>> a

a =1 2

4 5

3 6

1 3

>> x = a( :, 1 );

>> y = a( :, 2 );

>> [ x, index ] = sort( x );%對x排序,並記下排序索引

>> a = [ x, y( index ) ]a =1 2

1 3

3 6

4 5

matlab中怎樣將矩陣的每一行進行排序?

javascript中sort函式問題,引數那麼寫什麼意思

清風之無痕歲月 sort 方法 返回一個元素已經進行了排序的 array 物件。arrayobj.sort sortfunction 引數arrayobj 必選項。任意 array 物件。sortfunction 可選項。是用來確定元素順序的函式的名稱。如果這個引數被省略,那麼元素將按照 ascii...

matlab中畫方波的square函式怎麼設定週期和峰值

化學工程 clc clear t 0 0.001 2 pi a 2 p 4 y a square p t plot t,y axis t 1 1 t end 1 a 1 a 1 a峰值,p週期。 o ye deng yixai matlab 中square函式怎麼設定峰值呢? 化學工程 看看這個。是...

關於Python中sort函式賦值的問題

python中的sort 方法用於陣列排序,本文以例項形式對此加以詳細說明 一 基本形式 列表有自己的sort方法,其對列表進行原址排序,既然是原址排序,那顯然元組不可能擁有這種方法,因為元組是不可修改的。123x 4,6,2,1,7,9 x.sort print x 1,2,4,6,7,9 如果需...