Concept of the null operator question
1 回表示 (過去 30 日間)
古いコメントを表示
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 件のコメント
the cyclist
2021 年 3 月 4 日
編集済み: the cyclist
2021 年 3 月 4 日
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)
採用された回答
John D'Errico
2021 年 3 月 8 日
編集済み: John D'Errico
2021 年 3 月 8 日
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 件のコメント
その他の回答 (1 件)
参考
カテゴリ
Help Center および File Exchange で Matrix Indexing についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!