Reshape matrix to have the same value every 30 cells
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Nikolas Spiliopoulos
am 19 Feb. 2018
Kommentiert: Jos (10584)
am 19 Feb. 2018
Hi All,
I have a question: I have a matrix
A=[10; 20; 30; 40; 50; 50; 60]
How can I reshape it in order to have a matrix (7x30) X 1 such that the first 30 values are A(1), the next 30 have value of A(2), and so on...
thanks
nikolas
0 Kommentare
Akzeptierte Antwort
Guillaume
am 19 Feb. 2018
This is not a reshape it's a repmat:
repmat(A, 1, 30)
1 Kommentar
Jos (10584)
am 19 Feb. 2018
Just to be nitpicking :D ... the first 30 values of A, retrieved by A(1:30) will be [10 20 30 40 50 60 70 10 20 ...] because A is a column vector and Matlab stores values columnwise.
Weitere Antworten (1)
Birdman
am 19 Feb. 2018
Bearbeitet: Birdman
am 19 Feb. 2018
B=mat2cell(repmat(A,1,30),ones(1,7),30)
type A{1} and the result will be 30 10's.
2 Kommentare
Guillaume
am 19 Feb. 2018
You're on a version earlier than R2016b. You have to use bsxfun on earlier versions.
Not that it matters, since the answer has completely changed.
Siehe auch
Kategorien
Mehr zu Resizing and Reshaping Matrices finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!