why does this not work ?

2 ビュー (過去 30 日間)
Anne
Anne 2017 年 4 月 3 日
コメント済み: Image Analyst 2017 年 4 月 3 日
for n=1:4 % size(PIDS,1);
BC = {n,4};
BC{n,1} = {PIDS{n,1}; FNS{n,1}; PPNameS{n,1}; APS{n,1}};
BC{n,2} = {PIDS{n,2}; FNS{n,2}; PPNameS{n,2}; APS{n,2}};
BC{n,3} = {PIDS{n,3}; FNS{n,3}; PPNameS{n,3}; APS{n,3}};
BC{n,4} = {PIDS{n,4}; FNS{n,4}; PPNameS{n,4}; APS{n,4}};
end
BC
  5 件のコメント
Anne
Anne 2017 年 4 月 3 日
'Index exceeds matrix dimensions' is the complete error message.
Jan
Jan 2017 年 4 月 3 日
編集済み: Jan 2017 年 4 月 3 日
No, a complete error message should contain the failing line also. Are you running tis in the command window? If so, create a script or even better a function. Then debugging is easier und you (and the readers) do not have to guess, where the error occurres.
I've edited my answer.

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

回答 (1 件)

Jan
Jan 2017 年 4 月 3 日
編集済み: Jan 2017 年 4 月 3 日
You overwrite BC in each iteration. Perhaps you want to move the pre-allocation before the loop:
BC = cell(4, 4); % Not: {4, 4};
for n = 1:4 % size(PIDS,1);
BC{n,1} = {PIDS{n,1}; FNS{n,1}; PPNameS{n,1}; APS{n,1}};
BC{n,2} = {PIDS{n,2}; FNS{n,2}; PPNameS{n,2}; APS{n,2}};
BC{n,3} = {PIDS{n,3}; FNS{n,3}; PPNameS{n,3}; APS{n,3}};
BC{n,4} = {PIDS{n,4}; FNS{n,4}; PPNameS{n,4}; APS{n,4}};
end
"BC = {n,4}" means, that BC is set to a [1 x 2] cell array. Is this intented? Afterwards the elements {n, 1:4} are added. But the values from the former itereations are overwritten.
To get the reason of the error message, write the code in a script or better a function. Then typ this in the command window:
dbstop if error
Now run your code again until it stops at the error. Inspect the variables and the indices: At least one of the arrays has less elements than you request.
  1 件のコメント
Image Analyst
Image Analyst 2017 年 4 月 3 日
Anne, read this and this before you respond again. Also post some sample data for PIDS, FNS, PPNameS, and APS so we can try things to help you.

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

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by