Effacer les filtres
Effacer les filtres

How to extract one element from array in function?

8 vues (au cours des 30 derniers jours)
ryunosuke tazawa
ryunosuke tazawa le 17 Juil 2021
Commenté : Walter Roberson le 18 Juil 2021
I want to extract one element from array, but it is difficult in function statement.
Please someone tell me the way.
function dtheta = odeFun(t, theta)
g = 9.8;
l = 1;
Trq = randi([10 25],1,1); % Generate random numbers from 10 to 25
disp(Trq(1,1)) ← I wanna extract one element here.
% theta(1) = theta, theta(2) = dtheta
dtheta = zeros(2, 1);
dtheta(1) = theta(2);
dtheta(2) = -g/l*theta(1)-Trq;
end

Réponses (1)

LO
LO le 17 Juil 2021
Modifié(e) : LO le 17 Juil 2021
It is not clear what you want the function to do. What is t? and theta?
If your aim is to apply a fixed transformation of theta and create 2 output variables (dtheta and Trq) you need to specify a "Trq output variable" in the function synthax together with dtheta.
test = odeFun(2,45); % I've tried to test value pairs, in absence of any other hint
function [dtheta,Trq] = odeFun(t, theta)
g = 9.8;
l = 1;
Trq = randi([10 25],1,1); % Generate 1 random number from 10 to 25 (it generates only 1 Nr)
dtheta = zeros(2, 1);
dtheta(1) = theta(1); % I've changed theta's index to 1, it did not work otherwise
dtheta(2) = -g/l*theta(1)-Trq;
end
  6 commentaires
LO
LO le 18 Juil 2021
Modifié(e) : LO le 18 Juil 2021
Trq = randi([10 25],1,1); % this is your randomly generated torque
test = odeFun(2,45,Trq); % this is your test measure using the torque value
function [dtheta] = odeFun(t, theta, Trq)
g = 9.8;
l = 1;
dtheta = zeros(2, 1);
dtheta(1) = theta(1);
dtheta(2) = -g/l*theta(1)-Trq;
end
Walter Roberson
Walter Roberson le 18 Juil 2021
Using randomness outside of the odeFun and passing the value in, is something that is entirely valid.
If you were wanting to call this from ode45() then see http://www.mathworks.com/help/matlab/math/parameterizing-functions.html

Connectez-vous pour commenter.

Catégories

En savoir plus sur Programming dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by