有人可以向我解釋為什么我的代碼無法正常作業,以及實作我的代碼的正確方法是什么?
這是我的代碼:
x = [1 2 3 5; 4 3 1 3; 1 3 3 4];
y = [1 2 3 5; 4 3 1 3; 1 3 3 4];
columns = 3;
for i = 1:columns
correct = 0;
for j = 1:4
if x(i,j) == y(i,j)
correct = correct 1;
end
all_correct(columns,1) = correct;
end
end
當我運行此代碼時,我得到 all_correct 的答案如下:
all_correct = [0;0;4;]
我知道這是錯誤的,正確的答案應該是:
all_correct = [4;4;4;]
這是因為所有 x 元素與所有 y 元素完全相同。為了實作我想要的輸出,我不太確定我的代碼有什么問題。
uj5u.com熱心網友回復:
這只是您的代碼中的一個錯字,它應該是all_correct(i,1) = correct;
而不是all_correct(columns,1) = correct;
.
與columns
往常一樣3
,您只分配到中的第三個位置all_correct
。
[編輯]此外,正如 Cris Luengo 在您的問題下方所注意到和評論的那樣,您還可以all_correct(i,1) = correct;
在回圈之外移動j
.
您的代碼的改進版本將是:
all_correct = sum( x == y, 2 )
解釋:
x == y
提供一個邏輯陣列,顯示哪里x
和y
相等。sum( x == y, 2 )
對行進行總結。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/507940.html