MATLAB中的msgbox

时间:2013-08-06 13:01:38

标签: matlab msgbox

我想在msgbox中显示我的输出,所以我使用了msgbox(num2str(output)),但我想命名每一行,例如:

Red    25
Green  52
Yellow 88

但当我尝试这样做时,它说

Error using horzcat
     CAT arguments dimensions are not consistent.

当弹出该窗口并且用户按OK时,会弹出另一个窗口询问

W = questdlg('Would you like to retrain or test the network?', ...
        'Artificial Neural Network', 'Retrain', 'Test', 'Exit', 'Exit');

那么,如何格式化我的msgbox,一旦按下OK按钮,会弹出另一个窗口?

任何帮助将不胜感激!

谢谢!

2 个答案:

答案 0 :(得分:2)

对于第一个问题,您可以使用cell array表示法格式化消息框文本:

rVal = 25;
gVal = 35;
bVal = 45;
msg = {['Red   ',num2str(rVal)];...
       ['Green ',num2str(gVal)];...
       ['Blue  ',num2str(bVal)]};

这允许您垂直连接多长度字符串。

如果您的输出是Nx1列向量,您始终可以使用cellfun以这种方式对其进行格式化:

output = [25;35;45];
msgTxt = {['Red   '];['Green '];['Blue  ']};
msgNum = cellfun(@num2str,num2cell(output),'UniformOutput',false);
msg = cellfun(@(x,y) [x,y],msgTxt,msgNum,'UniformOutput',false);

只要你将msgTxt大小与输出大小相匹配,这对任何大小的输出变量都适用。

至于让您的程序等待用户响应,请尝试uiwait

mH = msgbox(msg);
uiwait(mH)
disp('Let''s continue...')

答案 1 :(得分:0)

msgbox可以像这样格式化

R=23;G=35;B=45; %given values

    (msgbox({['Red ',num2str(R)];['Green ',num2str(G)];['Blue ',num2str(B)]; }));

在你的问题的后半部分之后

uiwait(msgbox({['Red ',num2str(R)];['Green ',num2str(G)];['Blue ',num2str(B)]; }));

W = questdlg('Would you like to retrain or test the network?', ...
        'Artificial Neural Network', 'Retrain', 'Test', 'Exit', 'Exit');