No tengo idea de lo que está pasando aquí. Estoy usando R2006b. ¿Alguna posibilidad de que alguien con una versión más nueva pueda probar para ver si obtienen el mismo comportamiento, antes de que presente un informe de error?MATLAB "error" (o comportamiento realmente extraño) con estructuras y matrices de celdas vacías
código: (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
de salida:
>> 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');
Parece que el vacío/nada de la S.something
le permite cambiar los argumentos de una llamada de función. Esto parece muy mal comportamiento. En el corto plazo, quiero encontrar a mi alrededor (estoy intentando hacer una función que agregue elementos a una matriz de celdas inicialmente vacía que es miembro de una estructura).
Editar:
pregunta Corolario: lo que no hay manera de construir un struct
que contienen las matrices de células vacías literales?
AH: gracias - No vi las notas en la función struct que hablan sobre el uso de llaves adicionales cuando quiera pasar una matriz de celdas. Grrr. –