Build an array with different column lengths

Have one large data set (3333x1 double) and am trying to section out rows based on certain index values. If I have say 10 index pairs (beginning and end row) that I want to section out,each with different lengths how can I build one new nx10 matrix?
I keep getting subscripted assignment mismatches and similar errors when I try things like:
for i = 1:length(indices)
newData(:,i) = olddata(indexstart(i):indexstop(i),:);
end

回答 (1 件)

Matt J
Matt J 2016 年 8 月 15 日
編集済み: Matt J 2016 年 8 月 15 日

1 投票

Usually you would store such a result as a cell array,
newData=cell(1, length(indices));
for i = 1:length(indices)
newData{i} = olddata(indexstart(i):indexstop(i));
end
If it needs to be a numeric array, you need to decide what will go in the missing spots.

4 件のコメント

matlabuser12
matlabuser12 2016 年 8 月 15 日
SO this will give me one cell array with multiple columns? or multiple cells each with a column in it? How would I achieve the former?
Matt J
Matt J 2016 年 8 月 15 日
編集済み: Matt J 2016 年 8 月 15 日
SO this will give me one cell array with multiple columns? or multiple cells each with a column in it?
Both. A cell array consists of multiple cells. In this case, the cell array that gets created is 1xlength(indices). In other words, it has N=length(indices) columns.
The content of each of the N cells is a numeric vector from olddata. It will be a numeric column vector if your olddata was also a column vector.
matlabuser12
matlabuser12 2016 年 8 月 15 日
I get a 1x10 array with each cell having one column in it. do I need to nest this newdata into another cell array or something?
Matt J
Matt J 2016 年 8 月 15 日
編集済み: Matt J 2016 年 8 月 15 日
Your needs, and what you plan to do with this data later, are completely hidden from me. However, I can't imagine many situations where you couldn't use the 1x10 cell array as is.

サインインしてコメントする。

カテゴリ

ヘルプ センター および File ExchangeMatrix Indexing についてさらに検索

質問済み:

2016 年 8 月 15 日

編集済み:

2016 年 8 月 15 日

Community Treasure Hunt

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

Start Hunting!

Translated by