Target just the last added entries to a matrix
    4 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 Logical 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!

