【问题标题】:Display of strings in MATLAB GUI [closed]在 MATLAB GUI 中显示字符串 [关闭]
【发布时间】:2013-11-29 00:14:55
【问题描述】:

如何在这个程序中显示随机引擎生成的字符串数组而不是“第一行”..}?

'status = {'第一行', ... '二线',...

                'Third line', ...
                'Fourth line'};

    h = dialog('WindowStyle', 'normal', ...
        'Name', 'Randomised Devices', ...
        'Position', [100, 200, 350, 500]);

    uicontrol(h,...
        'Style', 'edit', ...
        'Units', 'normalized', ...
        'Position',[0.01 0.01 0.99 0.99], ...
        'BackgroundColor', [1 1 1], ...
        'Min', 1, ...
        'Max', 1000, ...
        'HorizontalAlignment', 'left', ...
        'String', status);

【问题讨论】:

    标签: matlab user-interface dynamic dialog


    【解决方案1】:

    如果你只是想显示单元格,你可以使用

    cell2str(status)
    

    例如

    [...] 'String', cell2str(status));
    

    对于更复杂的显示,您可能需要填写“\n”来强制换行,例如如果您想将每个单元格放在文本框的新行中:

    statusstr = sprintf('%s\n',status{:})
    

    (参见http://www.mathworks.com/matlabcentral/answers/21308)

    【讨论】:

    • 它给出了一个错误。 'java.lang.String[]' 类型的输入参数的未定义函数'str2cell'。 SMERCGUI 中的错误>pushbutton1_Callback(第 286 行)状态 = { str2cell(results2)}; @pyStarter
    • 根据您的 Matlab 版本,可能不包含函数 cell2str(不是 str2cell)。你可以从mathworks.com/matlabcentral/fileexchange/13999-cell2str检索它
    • 我使用的是 R2012b,所以我假设函数 cell2str 已经包含在内,我认为你没有清楚地得到我的问题。我在代码中的前一个操作中连接了几个字符串,我想显示它而不是“第一行...”第二行“..)。那么你能告诉我这将如何工作吗?当我尝试替换 status=(loads1) 但它显示一个空白 GUI。 PS:我是 GUI 编程的新手,需要认真的紧急帮助。 @安德鲁理发
    • 如果没有包含cell2str函数,您可以从我之前发布的链接下载。这与 GUI 编程无关。基本上,您需要将单元格(您正在使用的数据类型)转换为字符串,该字符串可以显示在文本框中(在 Matlab 中称为“编辑”)。字符串是否显示为“{'a','b','c'}”或者更确切地说是 abc. 由您决定
    猜你喜欢
    • 1970-01-01
    • 2016-09-08
    • 1970-01-01
    • 2012-06-08
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 2010-10-21
    • 1970-01-01
    相关资源
    最近更新 更多