How to access workspace variables one by one using m-script

Hello,
I would like to read all workspace variables into array and check whether the name of variable is Matlab keyword or not. For example, I have four variables in workspace(a = 1;b=2;c=3;d=4;). I want to check if the varaible is keyword or not using matlab inbuilt function(iskeyword()) like below.
iskeyword('a')
ans =
0
>> iskeyword('if')
ans =
1
Is it possible check all base work space variables like this?

 Respuesta aceptada

You can get all the workspace variables like this:
>> varList = evalin('base', 'who');
Then check individual parameters:
>> iskeyword(varList{k}) % for k-th parameter

3 comentarios

Hello Nobel,
I tried your code syntax also:
a = 1;
b=2;
c=3;
d=4;
y = 'if';
varList = evalin('base','who');
for k=1 : length(varList)
result_1 = iskeyword(varList{k}) % for k-th parameter
end
when I run this code, I am getting empty varList. Is that correct ?
Nobel Mondal
Nobel Mondal el 1 de Jun. de 2015
Editada: Nobel Mondal el 1 de Jun. de 2015
Ah, you're probably calling this from inside a function. You need to define the WorkSpace context: 'base' or 'caller'
Or else, you simply can try
>> varList = who;
If the scope isn't changing.
N/A
N/A el 1 de Jun. de 2015
Editada: N/A el 15 de Jun. de 2015
Hello Nobel,
after small change for your syntax.I got what I need.
allBaseWorkspaceVar = evalin('base','whos');

Iniciar sesión para comentar.

Más respuestas (1)

a = 1;
b=2;
c=3;
d=4;
s1=whos
out=cellfun(@iskeyword,{s1.name})

4 comentarios

Hello Azzi,
thanks for reply..I tried your code:
a = 1;
b=2;
c=3;
d=4;
y = 'if';
s1=whos;
out=cellfun(@iskeyword,{s1.name})
output :
out =
0 0 0 0 0
It should returns last element '1'. could you please let me know why its not giving expected result?
in your example, the name of your variable is 'y', not 'if'
but when I type command "iskeyword(y)" , Matlab returns value '1'
what is that mean?
Maybe you need this
s1=whos
s2={s1.name}
for k=1:numel(s1)
out(k)=iskeyword(eval(s2{k}))
end

Iniciar sesión para comentar.

Productos

Preguntada:

N/A
el 1 de Jun. de 2015

Editada:

N/A
el 15 de Jun. de 2015

Community Treasure Hunt

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

Start Hunting!

Translated by