仅当在Matlab中条件为真时才写入文本框

时间:2017-01-04 14:32:54

标签: matlab callback textbox

我在Matlab GUI中打印文本很困难。

我的回调中有这样的代码:

if Lia == ismember(handles.T(1:3),(1,1,1))
    set(handles.t1, 'String', 'good day');
end

问题是,我不知道如何检查我的数组索引是否从1到3我得到了这个数字:1,1,1。我正在查看文档,但它似乎没有说明(或者我根本找不到正确的答案)。

1 个答案:

答案 0 :(得分:1)

您可以简单地使用all并检查数组前三个插槽中的每个元素是否与显式值1匹配。我不知道你的阵列的形状,所以我要强迫它成为一个列向量。如果数组的前三个槽是一个行或列向量,如果我们假设值1分别是一个列或行向量,那么你将会得到一个相当令人不快的惊喜:

h = handles.T(1:3);
if all(h(:) == [1; 1; 1])
    set(handles.t1, 'String', 'good day');
end

请注意,我可以简单地完成all(h(:) == 1)作为特例,因为我们正在使用单个值对数组中的每个元素进行比较。但是,我觉得这可能会对你有所改变,所以我决定明确地制作一个1s的向量,这样你就可以在以后改变你想要比较的内容。