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.


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!