我编写了以下程序,以便从用户那里获取一个字符串数组,对它们进行排序,然后向用户显示已排序的数组。
但似乎sort
函数完全杀死了程序。因为第二个msgbox
永远不会出现。
另请注意,如果我在第一次显示时取消inputdlg
,则会显示两个消息框。
strings = {};
count = 1;
while(1)
prompt = {strcat('Enter the ', num2str(count), '# String')};
temp = inputdlg(prompt,'Input String',1,{'String'});
if isempty(temp)
break
end
strings{count} = temp;
count = count + 1;
end
msgbox('Processing....');
sorted = sort(strings); % The program stops executing on this point
msgbox('Operation Completed');
那么为什么程序永远不会执行最后一行?谢谢。
答案 0 :(得分:4)
变量temp
是包含输入字符串的1x1单元格。通过分配strings{count} = temp
,strings
的每个条目都是1x1单元格。如果您查看工作区中的变量,您将能够验证它。您只能通过调用
strings{count} = temp{1};
通过此修改,strings
单元格包含字符串而不包含单元格。现在,您将能够使用sort
函数对单元格进行排序,并且您的代码应该按预期工作。