如何在matlab中使用inputdlg和for循环

时间:2016-04-29 15:03:43

标签: matlab

已经尝试过搜索,但无法找到任何帮助,也许我的问题太简单了!无论如何,我运行了一个嵌套的FOR循环,但是我保存结果的数组只保留了最后一个" run"结果有人可以帮我存储/连接结果吗?

clc 
clear
n = 2;
for aa = 1:n
aa = inputdlg({'Depth from','Depth to','Outer Diameter','Nominal Weight'},'1',[1 7;1 7;1 30;1 30]);
x = [str2num(aa{1}),str2num(aa{2}),str2num(aa{3}),str2num(aa{4})]
end

和结果 x =

 1     2     3     4

x =

 5     6     7     8

我不能使用第一个, 想要保存所有结果并将每次迭代保存在单个变量中

1 个答案:

答案 0 :(得分:2)

这不是将结果保存到for循环中的数组的方法;将循环变量和存储值的数组分开:

clc 
clear
n = 2;
x = zeros(n, 4);
for k = 1:n
    aa = inputdlg({'Depth from','Depth to','Outer Diameter','Nominal Weight'},'1',[1 7;1 7;1 30;1 30]);
    x(k, :) = [str2double(aa{1}),str2double(aa{2}),str2double(aa{3}),str2double(aa{4})];
end

然后,如果你显示x,你会得到类似的东西:

x =

     1     2     3     4
     5     6     7     8

假设您在对话框中输入了1到4,然后输入了5到8。