Azzera filtri
Azzera filtri

Info

Questa domanda è chiusa. Riaprila per modificarla o per rispondere.

Arrange Matrix - Each Column Values to a new row

1 visualizzazione (ultimi 30 giorni)
Marv
Marv il 2 Ott 2015
Chiuso: MATLAB Answer Bot il 20 Ago 2021
sourceData = {1 'ABC1';3 'ABC2'; 8 'ABC1'; 7 'ABC3'; 0 'ABC1'; ...
5 'ABC3'; 8 'ABC2'; 4 'ABC3'; 7 'ABC2'; 6 'ABC2'} ;
[names, ~, cId] = unique( sourceData(:, 2) ) ;
buf = bsxfun( @eq, 1:max( cId ), cId ) ;
rId = sum( cumsum( buf ) .* buf, 2 ) ;
destData = [names.'; cell( max( rId ), numel( names ))] ;
destData(sub2ind( size(destData), 1+rId, cId )) = sourceData(:, 1) ;
This leads to:
>> destData
destData =
'ABC1' 'ABC2' 'ABC3'
[ 1] [ 3] [ 7]
[ 8] [ 8] [ 5]
[ 0] [ 7] [ 4]
[] [ 6] []
Now I want to swap each column to a row, so that the result looks like:
destData =
'ABC1' [ 1] [ 8] [ 0] []
'ABC2' [ 3] [ 8] [ 7] [ 6]
'ABC3' [ 7] [ 5] [ 4] []
How can I do that ?

Risposte (1)

Thorsten
Thorsten il 2 Ott 2015
You can transpose cells in Matlab:
destData = destData';

Questa domanda è chiusa.

Community Treasure Hunt

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

Start Hunting!

Translated by