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,[])
答案 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