obtain a matrix out of other matrix
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hello
I have a 1*104 matrix which ı have to create a 8*13 matrix out of it.
For one column of the final 8*13 matrix I can do the following code but how can I write one single code to get the whole matrix
zs_d=zeros(8,1);
for r=1:8;
zs_d(8,1)=(zs(13*r-12));
end
This gives me the first coloumn and for the second column I can write :
for r=1:8;
zs_d(8,1)=(zs(13*r-11));
end
and it goes the same till end...
I tried to write it in one for loop like the following but it gave me an error:
zs_d=zeros(8,13);
for r=1:8,c=1:12;
zs_d(8,13)=(zs(13*r-13-c));
end
error : Subscript indices must either be real positive integers or logicals.
thanks for the help
2 Commenti
Fangjun Jiang
il 24 Ott 2019
Your code does not match your description. In any case, I think reshape() should help you.
Risposta accettata
Più risposte (1)
Steven Lord
il 24 Ott 2019
Modificato: Steven Lord
il 24 Ott 2019
reshape your vector to be 13-by-8 then take the transpose of it.
>> x = 1:104;
>> y = reshape(x, [13 8])
>> z = y.'
You can do this in one step, but I think it's important to see the intermediate result (y) so you can see how MATLAB arranges elements. This is useful knowledge for a technique called linear indexing.
Vedere anche
Categorie
Scopri di più su Resizing and Reshaping Matrices 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!