フィルターのクリア

Concept of the null operator question

1 回表示 (過去 30 日間)
Evan Bakalars
Evan Bakalars 2021 年 3 月 4 日
編集済み: John D'Errico 2021 年 3 月 8 日
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
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)
idx = 3
Stephen23
Stephen23 2021 年 3 月 5 日
"...does that make the matrix now look like [1,2,4,5]?"
Yes.

サインインしてコメントする。

採用された回答

John D'Errico
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]
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.

その他の回答 (1 件)

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

カテゴリ

Help Center および File ExchangeMatrix Indexing についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by