Dopo aver trovato un po 'di logica in how empty structs are dealt with, volevo controllare come questo generalizzato alle matrici.Differenza tra il primo elemento della matrice 1x1 e tutti gli elementi della matrice 1x1
Qui ho notato la seguente:
Se si dispone di una matrice 1x1, e assegnare al primo elemento. Non è lo stesso che assegnare a tutti gli elementi.
Questo piuttosto mi sorprende dal momento che il primo elemento è in realtà lo stesso di tutti gli elementi in questo caso. Ecco le mie osservazioni:
x = 1;
y = 1;
z = 1;
x(:) = []; % Evaluates to [] as I expected
y(1) = []; % Evaluates to Empty matrix: 1-by-0, rather than []
z(1,1) = []; %Throws an error: 'Subscripted assignment dimension mismatch.' even though size(z) gives [1 1];
z(1,:) = []; % Evaluates to Empty matrix: 0-by-1, just like z(:,:) = []
Dopo aver visto questa la mia domanda è:
Perché l'assegnazione alla stessa cosa in modi diversi, portano a quattro diversi risultati?
Sei solo interessato o è un problema reale per te? –
@DennisJaheruddin Dovresti lavorare nel team QA di TMW :) –
@SamRoberts La domanda * perché * è principalmente per interesse, ma soprattutto la differenza tra la prima e la quarta situazione mi ha fatto preoccupare della robustezza del mio codice. Quindi non è solo una domanda, ma anche un avvertimento. –