Populating a matrix with user input
2 ビュー (過去 30 日間)
古いコメントを表示
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..
0 件のコメント
採用された回答
KALYAN ACHARJYA
2019 年 11 月 5 日
編集済み: KALYAN ACHARJYA
2019 年 11 月 5 日
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
3 件のコメント
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Matrices and Arrays についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!