在matlab控制台

时间:2015-06-27 13:40:30

标签: matlab

function c =  makecode(s, codeword)
global CODE;
if(length(s) == 1)

    CODE{s(1)} = codeword;


else

    makecode(s{1}, [codeword 1]);
    display(s{1})
    makecode(s{2}, [codeword 0]);
    display(s{2})


end
 c= CODE;
end

从另一个.m文件调用此函数。但我在控制台上看不到任何东西。我做错了吗? 这就是它的召唤方式。

sig = [1,2,3];
p = [0.6 0.3 0.1];
global CODE

s = cell(length(p),1);
s = {1,2,3};
[p, i] = sort(p);
p(2) = p(1) + p(2);
p(1) = [];
s = s(i);
s{2} = {s{1}, s{2}};
s(1) = [];

makecode(s,[])

1 个答案:

答案 0 :(得分:1)

使用celldisp显示单元格数组的内容。不要使用display。首先,将makecode的输出分配给某个内容...称之为out

out = makecode(s,[]);

之后,在此使用celldisp

>> celldisp(out)

out{1} =

     0



out{2} =

     1     0



out{3} =

     1     1

要自包含,这是我在运行上述代码时未获得的输出。我在Windows 7 x64 Professional上使用MATLAB R2014a(64位):

ans =

     3


ans =

     2

    [3]    [2]


ans =

     1


ans = 

    [0]    [1x2 double]    [1x2 double]

ans包含要显示的内容的最新状态....因此,如果您在celldisp上执行ans,我们会得到:

>> celldisp(ans)

ans{1} =

     0



ans{2} =

     1     0



ans{3} =

     1     1