Asking User a Question with Variables

Why does this not work? How do I ask the user questions involving changing variables?

3 个评论

Please try to insert code instead of uploading a picture. No one likes to write the full code from a picture.
What are you having trouble with, exactly?
For some reason my copy and paste no longer works in my editor. I've checked all my shortcuts and theyre one there - but it still does not work.

请先登录,再进行评论。

 采纳的回答

solution:
answer=inputdlg({'nodes'});
nodes=str2double(answer(1,1));
nodematrix=Inf(nodes);
A=0;
B=1;
while A<nodes
B=B+1;
A=A+1;
answer=input(['Enter resistance between ',num2str(A),' and ',num2str(B)])
end

4 个评论

Is there a way I can do this with inputdlg? I tried and it just split my question up really strangley.
answer = inputdlg({'Enter resistance between ',num2str(A),' and ', num2str(B)''})
something like this?
answer=inputdlg({'nodes'});
nodes=str2double(answer(1,1));
nodematrix=Inf(nodes);
A=0;
B=1;
answer=[];
while A<nodes
B=B+1;
A=A+1;
answer(end+1)=str2double(inputdlg(['Enter resistance between ',num2str(A),' and ',num2str(B)]));
end
disp(answer)

请先登录,再进行评论。

更多回答(2 个)

For this you could use num2str as JESUS DAVID ARIZA ROYETH posted, but I'd prefer either creating a string array to pass to the input function (if you're using a release of MATLAB that contains the string class) or using sprintf. Here's how you can use string (this requires you to use release R2017a or later to create a string using double quotes.)
A = randi([1 10]); % A scalar integer value between 1 and 10 inclusive
x = input("What positive number when squared gives " + A^2 + "? ");
if x == A
disp("Correct!")
else
disp("Incorrect, the correct answer is " + A + ".")
end
For sprintf:
k = 2;
s = sprintf('The value of %d*pi is approximately %f.', k, k*pi)

类别

帮助中心File Exchange 中查找有关 Interactive Control and Callbacks 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by