0
我有以下細胞基質,其將被用作一個混淆矩陣:Matlab-創建細胞混淆矩陣
confusion=cell(25,25);
然後,我有其他兩個單元陣列,在其上每行包含預測標籤(陣列輸出)和另一個包含真實標籤的單元矩陣(array groundtruth)。
whos output
Name Size Bytes Class Attributes
output 702250x1 80943902 cell
whos groundtruth
Name Size Bytes Class Attributes
groundtruth 702250x1 84270000 cell
然後,我創建了下面的腳本來創建混淆矩陣
function confusion=write_confusion_matrix(predict, groundtruth)
confusion=cell(25,25);
for i=1:size(predict,1)
confusion{groundtruth{i},predict{i}}=confusion{groundtruth{i}, predict{i}}+1;
end
end
但是當我在MATLAB中運行它,我有以下錯誤:
Index exceeds matrix dimensions.
Error in write_confusion_matrix (line 4)
confusion{groundtruth{i},predict{i}}=confusion{groundtruth{i}, predict{i}}+1;
我很好奇,打印輸出和實際值以查看發生了什麼
output{1}
ans =
2
groundtruth{1}
ans =
1
所以,沒有什麼似乎是錯誤的值,所以這裏有什麼問題?是代碼中混淆矩陣的索引權?
您只打印出'output'和'groundtruth'的**第一個**值。在循環失敗時,''I''''groundtruth {i}'或'predict {i}'最有可能大於25.在命令提示符中,輸入'dbstop if error',再次運行你的代碼, 'output'和'groundtruth'都在迭代'i',那麼請用你的信息更新你的文章。 – rayryeng