MATLAB: Populating a matrix with user input

diagonalmatrixeasyhelpinfinite matrixmatrixnanpopulating

answer=inputdlg({'nodes'});
nodes=str2double(answer(1,1));
nodematrix=Inf(nodes);
A=1;
B=0;
answer=[];
while A < nodes
B = B+1;
while B < nodes
B = B+1;
answer = str2double(inputdlg(['Enter resistance between ',num2str(A),' and ',num2str(B)]));
nodematrix(A,B) = str2double(answer)
nodematrix(B,A) = str2double(answer)
end
A = A+1;
B = 1;
end
disp(nodematrix)
OUTPUT:
Inf NaN NaN NaN NaN
NaN Inf NaN NaN NaN
NaN NaN NaN NaN NaN
NaN NaN NaN NaN NaN
NaN NaN NaN NaN Inf
I was wondering why these are showing up as NaN?? And I also am trying to fill this where it does not ask to fill the diagonal.. The diagonal should always be zero. I don't know why its asking for those values..

Best Answer

See the example:
Get the data from inputdlg;
Say any number 3, 4,5,6 ........
Then
>> str2double(4)
ans =
NaN
>> str2double(7)
ans =
NaN
I have removed the str2double in answer statement, str2double convert strings to double precision values, not numeric data
answer=inputdlg({'nodes'});
nodes=str2double(answer(1,1));
nodematrix=nodes6;
A=1;
B=0;
answer=[];
while A < nodes
B = B+1;
while B < nodes
B = B+1;
answer =inputdlg(['Enter resistance between ',num2str(A),' and ',num2str(B)]);
nodematrix(A,B) = str2double(answer)
nodematrix(B,A) = str2double(answer)
end
A = A+1;
B = 1;
end
##
nodematrix =
6 5 6 7 8 3
5 0 6 7 8 2
6 6 4 7 3 6
7 7 7 8 5 0
8 8 3 5 5 6
3 2 6 0 6 0