안녕 모두들 나는 아래와 같이 매트릭스 입력 프로그램을 가지고있다. 그러나 빈 또는 복잡한 또는 NaN 입력 루프에 실패합니다. 나는 다양한 종류의 방법에 지쳤으나 여전히 효과가 없습니다. 이 문제를 해결하기 위해 여러분 모두에게 조언을 구할 수있게되기를 진심으로 바랍니다.원하는 출력을 위해 루프하는 방법?
clear;clc
m=2;
for i = 1:m
for j = 1:m;
element_A = ['Enter the element in row ' num2str(i) ', col ' num2str(j) ': '];
A(i,j) = input(element_A);
while isnan(A(i,j)) || ~isreal(A(i,j)) || isempty(A(i,j))
fprintf('Input not valid')
element_A = ['Enter the element in row ' num2str(i) ', col ' num2str(j) ': '];
A(i,j) = input(element_A);
end
end
end
%% sample loop
m = str2double(input('??? : ', 's'));
while isnan(m) || ~isreal(m) || m<0
m = str2double(input('Enter valid value : ', 's'));
end
"작동하지 않음"이란 의미를 지정해주십시오. 'nan'과 복소수의 경우 코드가 잘 작동하는 것 같습니다. 그것은 빈 줄에 대해서만 충돌합니다. (숫자를 입력하지 않고 리턴을 누르십시오.) –
@ H.Muster 숫자 값을 삽입하지 않고 직접 enter 키를 누르거나 복소수 i 또는 j를 삽입하면 "Input not valid"메시지가 표시되지 않습니다. 입력 메시지를 다시 입력하라는 메시지가 다시 나타납니다. 그냥 입력을 누르면 프로세스가 다시 입력 메시지를 표시하지 않고 종료됩니다. 반복하지 않습니다. 내 루프가 실패했습니다.) – green
왜냐하면 'i '및'j'를 인덱스로 사용합니다. 따라서, 그들의 상상의 가치를 덮어 씁니다. – HebeleHododo