Row/Column Deletion Formatting

11 Ansichten (letzte 30 Tage)
Jonathan
Jonathan am 18 Jul. 2013
Though the title sounds quite trivial, I am confused as to how MATLAB formats the resulting matrix after a deletion.
For instance, in the MATLAB user guide they provide the following example:
You can delete rows and columns from a matrix by using a pair of square brackets. Start with
X =
16 4 2 13
5 7 11 8
9 3 7 12
4 21 13 1
To delete the second column of X, use
X(: , 2) = [ ]
X =
16 2 13
5 11 8
9 7 12
4 13 1
However, using a single subscript deletes a single element, or sequence of elements, and reshapes the remaining elements into a row vector. Therefore
X(2 : 2 : 10) = [ ]
X =
5 4 11 13 8
How am I sure that the row vector will be created if, say for instance, the sequence of elements that is deleted is an actual column. As an example,
A = magic( 3 )
A =
8 1 6
3 5 7
4 9 2
If I call the following,
A( min(A) ) = [ ]
A =
1 5 9 6 7 2
Though I would expect that, since it technically performs a deletion on the first column, the resulting matrix would be formatted as such
A =
1 6
5 7
9 2
Could someone within the community further explain this?

Akzeptierte Antwort

Cedric
Cedric am 19 Jul. 2013
Bearbeitet: Cedric am 19 Jul. 2013
When you index A using one sub, you perform what is called a linear indexing (see e.g. IND2SUB or SUB2IND). When you do so, the outcome of the deletion is a row vector, because you perform an operation that breaks the structure of the array in fact. This behavior is Mathworks' choice, and they could have defined it as well as an illegal operation (incompatible with data structure).
  1 Kommentar
Jonathan
Jonathan am 19 Jul. 2013
I had figured it was due to linear indexing, but I just wanted to verify. Thanks for the clarification. I appreciate it!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by