我不知道这里发生了什么.我正在使用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
Run Code Online (Sandbox Code Playgroud)
输出:
>> 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');
Run Code Online (Sandbox Code Playgroud)
看起来像空虚/虚无S.something允许它移动函数调用的参数.这看起来像非常糟糕的行为.在短期内我想找到它周围(我正在尝试创建一个函数,将项添加到最初为空的单元格数组,该数组是结构的成员).
编辑:
推论问:所以没有办法构造一个struct包含任何空单元格数组的文字?