如何允许在 Matlab GUI `edit text` 中输入矢量

How to allow a vector input in Matlab GUI `edit text`

如果数字输入是单个标量,下面的代码将起作用,但如果它是向量,则不起作用。我希望用户以 [5 5 5].

的格式输入矢量
handles.brightness = str2double(get(hObject,'String'));

我想将向量值存储在一个空数组中 zeros(1,3)。然后我可以做类似 handles.brightness(1)handles.brightness(2) 的事情来使用矢量元素。

您可以使用 str2num 而不是 str2double:

a = str2num('[5 5 5]')

a =

     5     5     5

>> a(2)

ans =

     5

b = str2double('[5 5 5]')

b =

   NaN

str2num 比 str2double 更灵活,但在安全性和性能方面存在成本。有关详细信息,请参阅文档。