MATLAB Answers


How can I pass a variable to RUN function?


I am using a .m script as a scenario's parameters definition file and I want to call it inside a function. I define the script file name and path trough the function uigetfile and then call the script as following:

[FileName, PathName]=uigetfile({'*.m', 'M-files (*.m)'}, 'Pick a scenario file');
CompletePath=fullfile(PathName, FileName);

The first time I call the function, there is no problem, but when I call it for the second time, I get the error:

??? Error using ==> run at 56
Incorrect number of right hand side elements in dot name assignment.  Missing [] around left hand side is a likely cause.

The only solution I have now is to restart Matlab. It will then work a single time again.

Thank you for your help




    dbstop if error

I have compared the workspaces of a successful case and a non-successful case at the error and both are identical,



1 Answer

Answer by Félix B-Audet on 5 Apr 2013
 Accepted answer

I found a solution. I changed the command line in RUN.m at line 56.

The original command is:

evalin('caller',[s ';'],'cd(cur);error(lasterr)')

Changing it by the following results in not raising a error and does what I expect it to do.

evalin('caller',[s ';'],'cd(cur);')

I will do a save as, rename it and keep the two versions of the file in my path.

Thank you.


Join the 15-year community celebration.

Play games and win prizes!

Learn more
Discover MakerZone

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

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!