MATLAB function within function handle output

Join the discussion
Ask a follow-up here, or get your own question answered by working scientists, mathematicians and engineers — people, not an autocomplete.
Real named experts · corrections over time · the nuance an AI answer skips
13 replies · 2K views
Carter
Messages
11
Reaction score
0

Homework Statement


MATLAB

The funciton "rockdynamicstage" outputs a matrix 4 by x, where x is somthing around 300( varies).

The funciton "rockdynamicstage" is within the funciton handle "sim" with an input of gama0. (PayMass,Masstages,Massfrac,Thstage,IspStage,ChangeTstage) ar parameters that are set earlier in the code.

sim= @(gama0) rockdynamicstage(gama0,PayMass,Masstages,Massfrac,Thstage,IspStage,ChangeTstage);

Homework Equations



I need the "sim" to output the last element in the 4th row of the "rockdynamicstage". So that I get the last element in the 4th row in "rockdynamicstage" for a range of gama0s.

How would I output it.

The Attempt at a Solution


I tried doing
sim= @(gama0) rockdynamicstage(gama0,PayMass,Masstages,Massfrac,Thstage,IspStage,ChangeTstage)(4,end);

similar to when using a regular matrix
 
Physics news on Phys.org
x= @(gama0) rockdynamicstage(gama0,PayMass,Masstages,Massfrac,Thstage,IspStage,ChangeTstage);
sim=x(4,end);

Or you can change the rockdynamicstage function
 
donpacino said:
x= @(gama0) rockdynamicstage(gama0,PayMass,Masstages,Massfrac,Thstage,IspStage,ChangeTstage);
sim=x(4,end);

Or you can change the rockdynamicstage function
But I need it to be a function handle. I need to be able to plug the function "sim" (that would ideally output the last element in the 4th row for a range of gama0s) into another function that finds the zero point.

So essentially I need the function handle to output a (x,2) array of the gama0s and the 4th row last elements for the rockdynamicstage.
output from the "sim" (or what you have as x) needs to be
[ gama01, rockdynamicstage(4,end); gama02, rockdynamicstage(4,end); gama03, rockdynamicstage(4,end);...so on]
 
This essentially is the outline but myrocketsim is rockdynamicstage. And the bisection method is used to find the zero
upload_2017-12-7_15-6-52.png
 

Attachments

  • upload_2017-12-7_15-6-52.png
    upload_2017-12-7_15-6-52.png
    20.1 KB · Views: 421
donpacino said:
There is a key difference between the code you presented and the code in step 2
What would that be?
 
Carter said:
What would that be?
Is it the "get()" part
 
donpacino said:
I didn't realize get could extract elements of a matrix
that syntax "get()" doesn't work though
 
get is designed to work with objects. My guess is you are supposed to define myrocket sim (or equivalent) as an object
 
Do you know for sure that your professor requires this architecture. It could be done very easily by using a loop or modifying the function calls.

If not you need to modify the way your myrocketsim works