# function handle as array

3 Ansichten (letzte 30 Tage)
Wout Laeremans am 2 Dez. 2022
Bearbeitet: Torsten am 2 Dez. 2022
I define a function handle as
P = @(t) mtimes(expm(t.*M),P_initial);
Where P_initial is a 4x1 array and M a 4x4 matrix. This works fine, but now I have a function with for every t a 4x1 answer, for example at t = 0 I get:
P(0)
ans =
0.0000
0.0000
0.0011
0.9988
What I want is to get this first element as a separate function of time, so I want a P_1(t) as a function handle, but I do not know how to do so.
##### 0 Kommentare-1 ältere Kommentare anzeigen-1 ältere Kommentare ausblenden

Melden Sie sich an, um zu kommentieren.

### Akzeptierte Antwort

Torsten am 2 Dez. 2022
M = rand(4,4);
P_initial = rand(4,1);
P = @(t) mtimes(expm(t.*M),P_initial);
P(0)
g = @(a,x)a(x);
g(P(0),1)
##### 2 Kommentare1 älteren Kommentar anzeigen1 älteren Kommentar ausblenden
Torsten am 2 Dez. 2022
Bearbeitet: Torsten am 2 Dez. 2022
M = rand(4,4);
P_initial = rand(4,1);
P = @(t) mtimes(expm(t.*M),P_initial);
g = @(a,x)a(x);
t = 0:0.01:1;
plot(t,arrayfun(@(t)g(P(t),1),t)) Melden Sie sich an, um zu kommentieren.

### Weitere Antworten (1)

Davide Masiello am 2 Dez. 2022
Bearbeitet: Davide Masiello am 2 Dez. 2022
That's because mtimes(a,b) = a*b, and if a is 4x4 and b is 4x1 than the operation yields a 4x1 array.
I think what you might want to do is
P = @(t) expm(t.*M).*P_initial;
Which will yield a 4x4 matrix where each column is .
But I am not completely sure I interpreted this correctly.
##### 3 Kommentare2 ältere Kommentare anzeigen2 ältere Kommentare ausblenden
Wout Laeremans am 2 Dez. 2022
Yes, I want the solution of: The general solution is given by: Where I call P = [P_O; P_3; P_2; P_1] and M the transition matrix. I know I can also solve this using an ode solver or just define a time array with a small time increment. However I really want P_O(t) as a function handle.

Melden Sie sich an, um zu kommentieren.

### Kategorien

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

R2021a

### Community Treasure Hunt

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

Start Hunting!