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 如果需...