Subscripted assignment dimension mismatch.

Hi there,
I'm writing a piece of code for facial recognition and i am getting the error message 'Subscripted assignment dimension mismatch.' on a certain section of the code;
faceDatabaseFeatures = zeros(size(faceDatabase,2)*faceDatabase(2).Count,4280);
featureCount = 1;
for i=1:size(faceDatabase,2)
for j = 1:faceDatabase(i).Count
faceDatabaseFeatures(featureCount,:) = extractHOGFeatures(read(faceDatabase(i),j));
faceDatabaseLabel{featureCount} = faceDatabase(i).Description;
featureCount = featureCount + 1;
end
personIndex{i} = faceDatabase(i).Description;
end
Under
faceDatabaseFeatures(featureCount,:) = extractHOGFeatures(read(faceDatabase(i),j));
I believe it is here that the problem is occuring but i cannot for the life of me see why it is giving me that error.
This is the image of my workspace, any help would be much apperciated.
Andrew

7 件のコメント

Adam
Adam 2019 年 1 月 10 日
編集済み: Adam 2019 年 1 月 10 日
This error comes from an assignment operation in which the size of the thing you are trying to assign is different to (incompatible with) that of the thing you are trying to assign it to.
In your case this almost certainly comes on this line:
faceDatabaseFeatures(featureCount,:) = extractHOGFeatures(read(faceDatabase(i),j));
where the size of the result being returned by extractHOGFeatures is not the same as the size of faceDatabaseFeatures(featureCount,:), which appears to be (1,4280)
If you use the Stop on errors option for debugging then it will halt the code at the occurence of this error and you can easily look at
size( extractHOGFeatures(read(faceDatabase(i),j)))
and
size( faceDatabaseFeatures(featureCount,:) )
on the command line to see what is happening.
Andrew Oldnall
Andrew Oldnall 2019 年 1 月 10 日
You're a star! this worked perfectly. Thank you for your well presented answer!
Andrew Oldnall
Andrew Oldnall 2019 年 1 月 10 日
I have another question if you do not mind answering it.
I am currently now getting this error message;
Error using subsindex
Function 'subsindex' is not defined for values of class 'imageSet'.
I have no idea what it means even reading the help section has not given me any more knowledge on how to stop this error because i'm not using the 'subsindex' in my work.
Thanks in advance,
Andrew
Jan
Jan 2019 年 1 月 11 日
Which code line causes the error? subsindex is called implicitly when you index an array.
Andrew Oldnall
Andrew Oldnall 2019 年 1 月 11 日
It doesnt state where the issue is coming from it just says theres an issue with imageSet but i am now also getting this error message;
Error using subsindex
Function 'subsindex' is not defined for values of class 'imageSet'.
Error in MATLABCW (line 91)
queryImage = sample(sample(person),j);
my imageSet code is;
faceDatabase = imageSet('NewMATLAB','recursive');
Thanks
Adam
Adam 2019 年 1 月 11 日
What does
which -all imageSet
show on that line if you put a breakpoint on that line and put the above on the command line?
Andrew Oldnall
Andrew Oldnall 2019 年 1 月 11 日
C:\Program Files\MATLAB\R2015a\toolbox\vision\vision\imageSet.m % imageSet constructor

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

回答 (1 件)

Jan
Jan 2019 年 1 月 11 日
編集済み: Jan 2019 年 1 月 11 日

0 投票

I looks like it does show, which line is failing:
queryImage = sample(sample(person),j);
Use the debugger to examine the problem. Type this in the command window:
dbstop if error
Now run the code again. When it stops at this line, try this:
person
sample(person)
j
sample(sample(person),j)
What do you observe?

1 件のコメント

Andrew Oldnall
Andrew Oldnall 2019 年 1 月 11 日
I still get this error when doing that;
Error using subsindex
Function 'subsindex' is not defined for values of class 'imageSet'

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

カテゴリ

ヘルプ センター および File ExchangeGet Started with Statistics and Machine Learning Toolbox についてさらに検索

製品

リリース

R2015a

質問済み:

2019 年 1 月 10 日

コメント済み:

2019 年 1 月 11 日

Community Treasure Hunt

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

Start Hunting!

Translated by