Accessing global variable from function

I have the following code:
function [ dirsOut, dirsPerTask ] = prepare( n )
global dirs;
numOfDirs = size(dirs,1);
dirsPerTask = round(numOfDirs/n);
end
dirs is defined as global:
EDU>> whos global
Name Size Bytes Class Attributes
dirs 2198x1 301616 struct global
status 0x0 0 double global
Got an error while calling function prepare:
EDU>> [o, n] = prepare(4)
Error in ==> prepare at 3 global dirs;
Probably I'm missing something ... Please assist.

2 Comments

The error you have posted 'Error in ==> prepare at 3 global dirs;' seems incomplete.
Run lasterror command after you get that error and post the contents of the message field.
@Irene: Please post the complete error message.

Sign in to comment.

Answers (2)

dpb
dpb on 29 Nov 2012
Remove the trailing ';' from the global statement--ML thinks dirs; should be a variable name but the semi-colon isn't valid character in a name
--

1 Comment

I used to think that too, but I was wrong. It turns out that command/function duality ends lines at semi-colons.

Sign in to comment.

dpb
dpb on 29 Nov 2012
Hmmm....I did a test first, why did it error? Oh, drat. I mistyped 'global' as 'globals' and didn't notice; just that it errored on the expected line. Mea culpa...
OK, so what is problem w/ the posted function?

Categories

Asked:

on 29 Nov 2012

Community Treasure Hunt

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

Start Hunting!