How can i recover from this error, Sub scripted assignment dimension mismatch error?

1 次查看(过去 30 天)
I found it very difficult to recover from this error, please note that variable 'class(:,index)' has to accept 50 values, which method i should adapt, since its already having an index, i found it difficult to convert?
Subscripted assignment dimension mismatch.
Error in Test_Cross_Random (line 189)
[value class(:, index)] = min(tmp');
for trial = 1:total_trial
Dim = size(F_train,2) - round(size(F_train,2)*0.15); %0.15 0.20 0.25
disc_set = Eigenface_f(single(F_train),Dim);
F_train = disc_set'*F_train;
F_test = disc_set'*F_test;
for index = 1: length(para)
output{index} = classify(F_train, F_train_size, F_test, para(index));
tmp = output{index};
[value class(:, index)] = min(tmp');
[confusion, accur_CRT(trial), TPR, FPR] = confusion_matrix(class(:, index), F_test_size);
end
end
  12 个评论

请先登录,再进行评论。

采纳的回答

Guillaume
Guillaume 2017-1-9
There are two possible reasons for the error. We don't have enough information to know which is the cause of your problem:
1) the variable class already exists before the index loop and has different number of rows that the number of columns returned by min. To solve this, clear class before the loop or, better, preallocate it:
class = zeros(size(F_train, 1), numel(para));
for index = ...
output{index} = ...
[~, class(:, index)] = min(output{index}, [], 2); %This is much clearer than your double transpose
2) the numbers of rows in output{index} varies for each index. In which case, you can't assign the output of min to a matrix, as the number of elements will vary at each step. Store the output in a cell array:
class = cell(size(para));
for index = ...
output{index} = ...
[~, class{index}] = min(output{index}, [], 2); %This is much clearer than your double transpose

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by