using f(end)

3 visualizzazioni (ultimi 30 giorni)
HAAAAH
HAAAAH il 5 Set 2019
Commentato: Steven Lord il 5 Set 2019
i am training now for matlab. but i can not understand how matlab works for this one f(end)?
x = [2 5 3]
f = 2
f(x) = f(end) * x
the ans is : f = [2 4 6 0 10]

Risposte (1)

Stephen23
Stephen23 il 5 Set 2019
Modificato: Stephen23 il 5 Set 2019
When used as an index, end returns the last index (for the specific dimension, or as a linear index).
Because f is defined as a scalar in your example, f(end) is simply equal to f, so your example is trivially equivalent to:
x = [2 5 3]
f = 2
f(x) = f * x
  6 Commenti
Guillaume
Guillaume il 5 Set 2019
And be aware that Madhan has shown you one possible way to define a function f of x. Although, I wouldn't use the last line as is as it overwrite the function with the result
x = [2, 5, 3];
f = @(x) 2*x; %note that the variable name here doesn't have to be x. It's not the same x as the 1st line
y = f(x)
Steven Lord
Steven Lord il 5 Set 2019
Because f is defined as a scalar in your example, f(end) is simply equal to f,
I would phrase this slightly differently. Because f has only 1 element, f(end) is f(1). If f had 2 elements, f(end) would be f(2). My hope is that this would make apparent the link between the end index's value and the number of elements in f.
It also generalizes: if f has 5 rows, f(end, 1) is f(5, 1). If f has 7 columns, f(3:4, end) is f(3:4, 7) and f(4, end-1) is f(4, 7-1). Just replace end with the size of f in the corresponding dimension.

Accedi per commentare.

Community Treasure Hunt

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

Start Hunting!

Translated by