Может кто-нибудь скажет мне, почему r в downRight всегда поднимается до 5, когда я сказал, чтобы записать его значение, как только downRight получает значение?Matlab Loop не работает
A = [5,16,18,4,9;
9,10,14,3,18;
2,7,9,11,21;
3,7,2,19,22;
4,9,10,13,8]
for r = 1:5
normal = strfind(A(r,:), [7,9,11]);
if isempty(normal) == 0;
rowOfFirstNum = r;
columnOfFirstNum = normal;
end
end
for diags = -5:5
downRight = strfind(diag(A,diags)', [10,9,19]);
if isempty(downRight) == 0;
rowOfFirstNum = downRight(1)+max(-diags,0);
columnOfFirstNum = downRight(1)+max(diags,0);
end
downLeft = strfind(diag(rot90(A),diags)', [11,2,9]);
if isempty(downLeft) == 0;
rowOfFirstNum = downLeft(1)+max(-diags,0);
columnOfFirstNum = downLeft(1)+max(diags,0);
end
end
г должно быть 2 не 5 для cOfFirstNum в Downright, но это всегда 5 то есть цикл достиг конца прежде, чем это значение было назначено cOfFirstNum, почему это?
Можете ли вы опубликовать фактический код, который вы пытаетесь запустить? Это имеет много ошибок (например, строка 'A = ...' недействительна, и строка, начинающаяся с 'if is empty (downRight) == 0;' также недействительна). –
Изменен, теперь он должен работать. Мне пришлось изменить оригинал. – user3071257
'Неопределенная функция или переменная 'normal'.' – Daniel