How to access workspace variables one by one using m-script
조회 수: 17 (최근 30일)
이전 댓글 표시
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?
댓글 수: 0
채택된 답변
Nobel Mondal
2015년 6월 1일
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
Nobel Mondal
2015년 6월 1일
편집: Nobel Mondal
2015년 6월 1일
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.
추가 답변 (1개)
Azzi Abdelmalek
2015년 6월 1일
a = 1;
b=2;
c=3;
d=4;
s1=whos
out=cellfun(@iskeyword,{s1.name})
댓글 수: 4
Azzi Abdelmalek
2015년 6월 1일
Maybe you need this
s1=whos
s2={s1.name}
for k=1:numel(s1)
out(k)=iskeyword(eval(s2{k}))
end
참고 항목
카테고리
Help Center 및 File Exchange에서 Whos에 대해 자세히 알아보기
제품
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!