convert array 3d array into 3 column(ranked)

1 view (last 30 days)
How can i convert array 3d array into 3 column(ranked)
INPUT
SPEED=[1 2]'
TRQ=[10 20 30]
Z=[0 1;3 5; 4 3]
A=TRQ
B=SPEED'
STEP1 -Convert Table into Array
STEP2 -Sort Array based on Z
Result=[{'SPEED', 'TRQ','Z'},[2;1;2;1;2;1],[20;30;30;30;10;10],[5;4;3;3;1;0]]
  1 Comment
Walter Roberson
Walter Roberson on 1 Aug 2019
Step0 = [{'', '', 'SPEED', ''};
{'', 'Z'}, num2cell(SPEED.');
{'T'; 'R'; 'Q'}, num2cell(TRQ(:)), num2cell(Z) ];

Sign in to comment.

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 1 Aug 2019
Edited: Andrei Bobrov on 1 Aug 2019
SPEED=[1 2]'
TRQ=[10 20 30]
Z=[0 1;3 5; 4 3]
[x,y] = ndgrid(TRQ,SPEED);
T = array2table([y(:),x(:),Z(:)],'VariableNames',{'SPEED','TRQ','Z'});
Tout = sortrows(T,{'Z','SPEED'},{'descend','descend'})
without using table
[x,y] = ndgrid(TRQ,SPEED);
T1 = [y(:),x(:),Z(:)];
T2 = sortrows(T,[-3,-1]);
out = [{'SPEED','TRQ','Z'};num2cell(T2)];

More Answers (0)

Categories

Find more on Data Type Conversion in Help Center and File Exchange

Products


Release

R2013b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!