matlab'Value' 必须为字符向量或字符向量元胞数组问题,怎么修改

img


function k=pailiezuhe(a)
b=str2num(num2str(a)')';
c=sort(b);
d=nchoosek(c,3);
e=unique(d,'row','stable');
k=e;
'Value' 必须为字符向量或字符向量元胞数组

你把转成字符串的部分全放在子函数,少定义一个变量p直接转换好再往外传。因为app上面TEXT显示的本质上还是字符串,如果显示数字还要找另外一种text(额记不太清了,bhys)能够专门显示数字的。

加断点看一下工作区的k和p,可能k就没正确获取到相应的值


 a=value;
            a=num2str(a);
            a=sort(a);
            a=nchoosek(a,3)
            n=length(a);
            for i=1:n
                x(i)={a(i,:)};
            end
            x=unique(x)
            a=cellstr(x);
            app.TextArea.Value = x

上面代码是学号挑3个数排序,你懂
核心是cellstr函数,先加一行cellstr(p),再输出

    function pailiezuhe(app, event)
         k=pailiezuhe(app.InputEditField.Value);
         p=num2ce11(k);
         cellstr(p)
         app.ResultTextArea.Value=p;
    end    

参考一下呢