Target just the last added entries to a matrix
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Hey, I am working with matrices and I wanted to know if there is a standard way/code to target just the last added entries to a matrix. I used the general syntax for appending data points to a matrix (A= [A;B]) and I wanted to know if there was an analogous general method for targetting the last added entries into a matrix. For example, I append 4 sets of coordinates to a matrix and now I want to call just those 4 sets from the matrix and use them for next step in my code. Any help is greatly appreciated.
4 Commenti
Guillaume
il 30 Ago 2019
There is always another way, but your question is not particularly clear.
A(end-n:end, :)
will give you the last n+1 rows of the matrix.
Note that growing a matrix by appending rows in a loop is slow. If you know beforehand how many rows the final matrix is going to be, then preallocating the matrix is a lot more efficient.
Risposta accettata
Guillaume
il 30 Ago 2019
As commented:
A(end-n:end, :)
will give you the last n+1 rows of the (2D) matrix.
does your solution only work with a loop
Why do you think that? There's no loop involved in that line. It's basic matrix indexing using the end keyword.
3 Commenti
Guillaume
il 1 Set 2019
Have you read the documentation page I linked?
This is really basic indexing. As everything in matlab, the name of the variable is irrelevant. You can call them whatever you want or replace the variable by a hardcoded constant
A(end-n:end, 1) %returns the last n+1 rows of A
A(end-10:end, 1) %returns the last 11 rows of A
somename(end-someothername:end, 1) %returns the last someothername+1 rows of somename
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Creating and Concatenating Matrices 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!