As a vector into a matrix of non-uniform length

2 Ansichten (letzte 30 Tage)
Lev Mihailov
Lev Mihailov am 5 Apr. 2022
Beantwortet: DGM am 5 Apr. 2022
I have an array of length n I need to make a 10xEnd matrix out of it
x = rand(1,1003); % n = 1003, 2055 , 7062
Data=reshape(x,10,[]);
Error using reshape
Product of known dimensions, 10, not divisible into total number of elements, 1003.
% the remaining 3 , 5 and 2 values ​​can be ignored
How can this be fixed?
Thank you in advance

Akzeptierte Antwort

DGM
DGM am 5 Apr. 2022
Here's one way
x = rand(1,123); % n = 1003, 2055 , 7062
m = 10; % output array height
trimlen = floor(numel(x)/m)*m; % number of elements in result
Data = reshape(x(1:trimlen),m,[]);
size(Data)
ans = 1×2
10 12

Weitere Antworten (0)

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by