how to make all vectors to equal size for a cell array.

4 次查看(过去 30 天)
hi, i have a cell array of z{k}, it has totally 60 cells. which are diffident size in columns. so while i am trying to plot all arrays data in a single plot,[plot(z{1}) it works for one cell.] it says all vectors must have same size.
plot(z{:})
??? Error using ==> plot
Vectors must be the same lengths.
so, i want to make equal size of vectors by placing zeros. so any one can please help me.

采纳的回答

Fangjun Jiang
Fangjun Jiang 2011-10-10
It might be easier using a for-loop, with hold on;
figure;hold on;
for k=1:length(z)
plot(z{k});
end

更多回答(1 个)

Laura Proctor
Laura Proctor 2011-10-10
lv = max(cellfun(@length,z));
za = zeros(1,lv);
for idx = 1:length(z)
cellVal = z{idx};
if length(cellVal) < lv
z{idx} = za;
z{idx}(1:length(cellVal)) = cellVal;
end
end

类别

Help CenterFile Exchange 中查找有关 Elementary Math 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by