how use reshape ?
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
i have mat file contains data. as follow
2 5 4 7 8
2 5 8 4 6
1 5 2 5 8
3 6 4 8 4
I wants it's output as a
1 1 2
2 1 2
3 1 1
4 1 3
1 2 5
2 2 5
3 2 5
4 2 6
1 3 4
2 3 8
3 3 2
4 3 4
1 4 7
2 4 4
3 4 5
4 4 8
1 5 8
2 5 6
3 5 8
4 5 4
where first vector is row number second vector is column number and third vector is data value according to row and column number. This is just an example. in reality I have a matrix of 120*288. hope you understand.
0 Commenti
Risposta accettata
Andrei Bobrov
il 23 Nov 2017
Modificato: Andrei Bobrov
il 23 Nov 2017
data = [2 5 4 7 8
2 5 8 4 6
1 5 2 5 8
3 6 4 8 4];
[x,y] = ndgrid(1:size(data,1),1:size(data,2));
out = [x(:),y(:),data(:)];
or
d = data;
d(d == 0) = nan;
[x,y,v] = find(d);
out = [x,y,v];
out(isnan(out)) = 0;
or
out = [fullfact(size(data)),data(:)];
Più risposte (1)
KSSV
il 23 Nov 2017
A = [2 5 4 7 8
2 5 8 4 6
1 5 2 5 8
3 6 4 8 4];
C1 = repmat(1:4,1,5)' ;
C2 = repelem(1:4,5)' ;
C3 = A(:) ;
C = [C1 C2 C3]
0 Commenti
Vedere anche
Categorie
Scopri di più su Cell Arrays in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!