MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today
Asked by Nathan on 14 Nov 2013

I am having trouble returning values to different .m files.

I have tried to declare the variables globally but that doesn't work.

The only way I have found to work is to use the:

save('') and load('')

commands.

I know there must be a way without creating this variable file...

For example say I have a file name test.m with code:

function val = test(x) y=x+5; end

and then I make another file called test2.m with code:

test(5) w=y+5

and then when I go to

run('test2.m')

it says undefined function or variable 'y'.

How can i fix this without using save/load variables.

THANKS!

Answer by The Matlab Spot on 14 Nov 2013

Okay.. You have done two mistakes with this...

1: In the file test.m, the function shall be

function val = test(x) val=x+5; end

receive the sum in the output variable of the function i.e. 'val'

2: In the file test2.m, the code shall be

y = test(5); w=y+5;

receive the output of the function in 'y' before using it

Answer by Nathan on 14 Nov 2013

what if I have two random random numbers that are generated by test.m and I want to use both those values for test2.m

Say:

function val=test(x) p=randi(x); q=randi(x+1); w=p*q; h=p+q; end

then test2.m has:

test(10) r=w+5 t=h+5

The Matlab Spot on 14 Nov 2013

function [w,h]=test(x) p=randi(x); q=randi(x+1); w=p*q; h=p+q; end

then test2.m has:

[w,h] = test(10) r=w+5 t=h+5

and so on...

for more detail MATLAB Documentation - Functions

## 0 Comments