MATLAB Answers

convert array 3d array into 3 column(ranked)

1 view (last 30 days)
joms
joms on 1 Aug 2019
Edited: joms on 8 Aug 2019
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)];
  1 Comment
joms
joms on 1 Aug 2019
Thank you . excactly the answer i was looking for.

Sign in to comment.

More Answers (0)

Products


Release

R2013b

Community Treasure Hunt

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

Start Hunting!