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

仅当Matlab中的条件为真时,才写入文本框,matlab,callback,textbox,Matlab,Callback,Textbox,我很难在MatlabGUI中打印文本 我的回调中有如下代码: if Lia == ismember(handles.T(1:3),(1,1,1)) set(handles.t1, 'String', 'good day'); end 问题是,我不知道如何检查我的数组索引从1到3是否有以下数字:1,1,1。我查看了文档,但它似乎没有说明这一点(或者我根本找不到正确的答案)。您只需使用并检查数组前三个插槽中的每个元素是否都明确匹配1的值。我不知道数组的形状,所以我要强制它成为一个列向量。如

我很难在MatlabGUI中打印文本

我的回调中有如下代码:

if Lia == ismember(handles.T(1:3),(1,1,1))
    set(handles.t1, 'String', 'good day');
end
问题是,我不知道如何检查我的数组索引从1到3是否有以下数字:1,1,1。我查看了文档,但它似乎没有说明这一点(或者我根本找不到正确的答案)。

您只需使用并检查数组前三个插槽中的每个元素是否都明确匹配1的值。我不知道数组的形状,所以我要强制它成为一个列向量。如果数组的前三个插槽是一个行或列向量,并且假设1的值分别是一个列或行向量,那么您将得到一个相当令人不快的惊喜:

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

请注意,我可以简单地将
all(h(:)==1)
作为一个特例,因为我们使用单个值对数组中的每个元素进行比较。但是,我觉得这可能会对您有所改变,因此我决定显式地将向量设为1,以便您可以在以后更改要比较的内容。

我的意思是,如果我想在另一种情况下检查另外3个元素(相同的代码,但数组中的元素不同)@Buszman是的,它可以。如果您想一次检查三个元素,直到数组结束,并且每三个元素都有不同的向量,这是可能的,但是需要更多的代码。