Concept of the null operator question

4 views (last 30 days)
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 Comments
Stephen23
Stephen23 on 5 Mar 2021
"...does that make the matrix now look like [1,2,4,5]?"
Yes.

Sign in to comment.

Accepted Answer

John D'Errico
John D'Errico on 8 Mar 2021
Edited: John D'Errico on 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]
ans = 1×5
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) = []
V = 1×4
1 2 3 5
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) = []
V = 1×5
1 3 5 7 9
And, for example, the third element of the new vector V is just 5.
V(3)
ans = 5
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.

More Answers (1)

Prudhvi Peddagoni
Prudhvi Peddagoni on 8 Mar 2021
Hi,
As seen in this answer , it does remove the 3rd element.
Hope this helps.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by