我不知道这里发生了什么。我使用的是R2006b版本。在我提交错误报告之前,有没有人能测试一下他们是否会遇到相同的问题,尤其是使用更新的版本?
代码: (bug1.m
)
function bug1
S = struct('nothing',{},'something',{});
add_something(S, 'boing'); % does what I expect
add_something(S.something,'test'); % weird behavior
end
function add_something(X,str)
disp('X=');
disp(X);
disp('str=');
disp(str);
end
输出:
>> bug1
X=
str=
boing
X=
test
str=
??? Input argument "str" is undefined.
Error in ==> bug1>add_something at 11
disp(str);
Error in ==> bug1 at 4
add_something(S.something,'test');
似乎
S.something
的空值/无内容状态可以使其转移函数调用的参数。这似乎是非常糟糕的行为。在短期内,我想找到一个解决方法(我正在尝试编写一个函数,将项目添加到最初为空的单元格数组中,该数组是结构体的成员)。附带问题:那么没有办法构造包含任何空单元格数组的
struct
文字吗?