Borrar filtros
Borrar filtros

Taking the last value of a matrix or vector

1.137 visualizaciones (últimos 30 días)
Villanova
Villanova el 9 de Sept. de 2011
Comentada: Voss el 25 de Jun. de 2024
Hi. How can I take a last term of a vector - since my vector dimensions change -, and plug it in somewhere else in my code without keep changing the code?
for example right now I do v(6) to get the 6th term. How can I do it for nth term.... Thanks

Respuesta aceptada

Walter Roberson
Walter Roberson el 9 de Sept. de 2011
v(end)
or
v(length(v))
  4 comentarios
Marcus
Marcus el 17 de Feb. de 2019
In MATLAB R2015a, end is faster than length():
>> x = rand(1, 100);
>> tic; for i=1:1e6; y=x(end); clear('y'); end; toc
Elapsed time is 5.475081 seconds.
>> tic; for i=1:1e6; y=x(length(x)); clear('y'); end; toc
Elapsed time is 5.705095 seconds.
Sangbok Lee
Sangbok Lee el 17 de Oct. de 2021
R2021a
I've tried it several times.
"end" is always slightly faster than "length()"
I think "end" works the same way using index numbers.
>> x=rand(10000);
>> tic; for i=1:1e7; y=x(end); clear y; end; toc
Elapsed time is 21.722168 seconds.
>> tic; for i=1:1e7; y=x(length(x),length(x)); clear y; end; toc
Elapsed time is 22.073104 seconds.
>> tic; for i=1:1e7; y=x(10000,10000); clear y; end; toc
Elapsed time is 21.818949 seconds.

Iniciar sesión para comentar.

Más respuestas (1)

Korosh Agha Mohammad Ghasemi
Korosh Agha Mohammad Ghasemi el 25 de Jun. de 2024
Movida: Voss el 25 de Jun. de 2024
To access the last element of a vector in MATLAB regardless of its length, you can use the end keyword. This allows you to dynamically reference the last element without having to specify the exact index.
Here’s an example demonstrating how to use the end keyword:
% Example vector
v = [7, 8, 8, 2, 5, 6];
% Access the last element
last_element = v(end);
% Display the last element
disp('The last element is:');
disp(last_element);
% Using the last element somewhere else in your code
result = last_element + 10; % Example operation
disp('Result of operation with the last element:');
disp(result);
In this example, v(end) retrieves the last element of the vector v regardless of its length. You can then use last_element elsewhere in your code.
If you need to perform operations on the last element in multiple parts of your code, you can encapsulate the logic in a function. Here’s an example:
% Function to get the last element of a vector
function last_element = getLastElement(vector)
last_element = vector(end);
end
% Example usage
v = [7, 8, 8, 2, 5, 6];
last_element = getLastElement(v);
% Display the last element
disp('The last element is:');
disp(last_element);
% Using the last element somewhere else in your code
result = last_element + 10; % Example operation
disp('Result of operation with the last element:');
disp(result);
By using the end keyword, you can write more flexible and maintainable code that adapts to changes in the size of your vectors.
  1 comentario
Voss
Voss el 25 de Jun. de 2024
"regardless of its length"
Not true. The length must be greater than zero to use end. Here's an example demonstrating the problem:
v = [];
v(end)
Array indices must be positive integers or logical values.

Iniciar sesión para comentar.

Community Treasure Hunt

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

Start Hunting!

Translated by