【问题标题】:MATlab GUI error: conversion to double from cell is not possible (string/array manipuilation problems)MATlab GUI 错误:无法从单元格转换为双精度(字符串/数组操作问题)
【发布时间】:2014-08-13 15:17:03
【问题描述】:

我正在尝试创建一个带有弹出菜单的用户界面,该菜单允许用户选择要分析的数据通道。所以我需要将弹出菜单字符串设置为仅显示给定数据文件中可用的通道数。

单击箭头时菜单应如下所示:

选择频道

---------1------------

---------2-----------

---------3------------

我这部分的代码如下:

%%create a variable to list the number of channels in this data
string=(1:channels)


%%create variable for desired popup string
dropbox_string=('Select Channel", string)

%%set pop-up menu string
set(get(handles.popupmenu2, 'string'), dropbox_string)

错误如下:无法从单元格转换为double。

我确定我的 'string' 和 'dropbox_string' 变量需要进行一些操作,我只是不确定是什么。

谢谢

【问题讨论】:

  • 首先,您的代码在语法上不正确: 1) 'Select Channel" 以单引号开头并以双引号结尾,这在 MATLAB 中没有任何意义。 2) dropbox_string 定义中的圆括号实际上没有意义。你的意图是什么?

标签: arrays string matlab user-interface matrix


【解决方案1】:

您的代码应该类似于:

%create a variable to list the number of channels in this data
strings=arrayfun(               ...
        @num2str, 1:channels,   ...
        'UniformOutput', false  ...
)


%create variable for desired popup string
dropbox_string={'Select Channel", strings{:}}

%set pop-up menu string
set(handles.popupmenu2, 'string', dropbox_string)

要真正确保一切正常,请确保 handles.popupmenu2 是一个有效的图形句柄,并且是一个真正的弹出菜单。

【讨论】:

  • 完美运行。我被困在这个问题上太久了。谢谢!
  • 现在,如果您可以选择它作为答案,那就太好了。 :-)
  • 是的,只是复选标记。如果有多个答案,它将标记您认为问题的正确答案的一个。如果您在我之前的评论之前已经检查过,我很抱歉。
  • 现在,当我从弹出菜单中获取选择时,它告诉我选择是 {5x1 单元格} 如何识别特定选择以便为每个选择创建 if 语句?我是否应该创建一个新问题,以便在您知道答案的情况下更清楚并为您赢得更多声誉?
  • 您的 GUI 是用 GUIDE 制作的?或者您以编程方式创建它?
猜你喜欢
  • 2014-07-28
  • 1970-01-01
  • 2015-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多