Access matrix values inside of a function

Hi MATLAB-Folks,
I'm asking with a beginner problem for your help, I searched the forum for an answer but without sucess:
I have a script, that creates a vector, lets say as an example:
>> g_x_contact=[0 0 1 2 3 4 0 0]
afterwards I'm creating a function, that uses the corresponding value of the vector within.
For example:
function Integral = pressure_integral(x)
Integral = g_x_contact(x).*(x/2)
end
So I want the function to use the value at position x and calculate the according steps afterwards.
Here the promt-line >> pressure_integral(6) should calculated with the sixth element: 4.*(6/2)=12
Instead I get the error-Message
Unrecognized function or variable 'g_x_contact'.
Error in pressure_integral (line 6)
Integral = g_x_contact(x).*(x/2)
Can anybody give me a hint, how the access the Vector?
Thank you in advance and very best
Christian

 Risposta accettata

Bob Thompson
Bob Thompson il 2 Mar 2021
Modificato: Bob Thompson il 2 Mar 2021
I believe this is the purpose of global variables, but I could be wrong. I don't really use them much.

5 Commenti

Much better than global variables (which should be avoided):
  • nested functions
  • passing data as input argument (recommended by the MATLAB documentation).
Thank you for your answers Bob and Stephen,
I came across the method of passing data as an input. I thought my targeted use for this fuction -to calculate an integral- will be problematic, if I give the function two input arguments.
My detailed explenation:
The p(Xi) is my precalculated Vector with different values.
Is it expedient to do this with the method of passing data?
Very best
Christian
Stephen, good to know. So glad they taught me good code practices in school.
Christian, why don't you just pass in the extra variable?
function Integral = pressure_integral(x,g_x_contact)
Integral = g_x_contact(x).*(x/2)
end
Stephen23
Stephen23 il 2 Mar 2021
Modificato: Stephen23 il 2 Mar 2021
"I thought my targeted use for this fuction -to calculate an integral- will be problematic, if I give the function two input arguments."
It isn't problematic at all. This explains what you need:
Thank you guys very much!

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements in Centro assistenza e File Exchange

Prodotti

Release

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by