Concept of the null operator question
3 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Evan Bakalars
il 4 Mar 2021
Modificato: John D'Errico
il 8 Mar 2021
This is more of a conceputal question that I need help with.
If I have say sampleMatrix=[1,2,3,4,5] and then I type the code sampleMatrix(3)=[], does that make the matrix now look like [1,2,4,5]?
I ask because I want to know if you do the previously mentioned null operator code, does that now make the third element 4, or is 4 still the fourth element?
Thank you and I apologize if it is confusing.
2 Commenti
the cyclist
il 4 Mar 2021
Modificato: the cyclist
il 4 Mar 2021
That syntax fully removes the element from the vector. What used to be a length-5 vector is now a length-4 vector. The number 4 is now the 3rd element of that vector,
sampleMatrix = [1 2 3 4 5];
sampleMatrix(3)=[];
idx = find(sampleMatrix==4)
Risposta accettata
John D'Errico
il 8 Mar 2021
Modificato: John D'Errico
il 8 Mar 2021
MATLAB does not allow arrays with empty elements. Double precision arrays are always nice rectangular things. So, for example, the array
[1 2 3 [] 5 6]
is just a vector with 5 elements. The 4th element there is the number 5.
Similarly, you cannot insert an "empty" cell into a vector.
Therefore, the syntax in MATLAB to delete an element of a vector is to set it equal to [], empty brackets.
V = 1:5;
V(4) = []
Again, the result is a vector of length 4. Everything to the right of that element gets shuffled over.
You can use [] to delete multiple elements at once, thus
V = 1:10;
V(2:2:end) = []
And, for example, the third element of the new vector V is just 5.
V(3)
All of that said, you need to be careful when working with cell arrays, because cell arrays CAN contain empty cells. But for regular flat arrays, [] is just the tool to delete elements.
0 Commenti
Più risposte (1)
Vedere anche
Categorie
Scopri di più su Loops and Conditional Statements in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!