필터 지우기
필터 지우기

how to execute a loop through all the variables in the workspace?

조회 수: 18 (최근 30일)
Roberta
Roberta 2014년 10월 5일
댓글: Roberta 2014년 10월 5일
Hi all,
Here's my question:
I ha about 300 variables in my workspace, which are named accordingly to the contents (are macroeconomic time series for 20 countries)
for example:
  • gdpUK (is the GDP of United Kingdom)
  • gdpUS (is the GDP of United States)
  • ... (and so on for 20 countries)
  • reerUK (is the real effective exchange rate for the United Kingdom)
  • reerUS (REER for US)and so on
I would like to standardise these series, i need something that do:
for i= first variable: last variable
i=(i-mean(i))/std(i)
end
how can I do this?
thank you in advance for your help! :)

채택된 답변

Guillaume
Guillaume 2014년 10월 5일
편집: Guillaume 2014년 10월 5일
It would have been better to store your data in tables or even cell arrays or maps. Anyway:
for cv = who('gdp*')' %transpose to get a row cell array
eval(sprintf('mean%1$s = (%1$s - mean(%1$s)) / std(%1$s);', cv{1})); %1$s is replaced by var name, output is named meanvarname
end
%same with 'reer*'
  댓글 수: 1
Roberta
Roberta 2014년 10월 5일
Thank you very much!
It solved the problem even if, as you said, it isn't certainly the most efficient solution. Actually I was looking for a quick&dirty solution, and I've found it!
Once more, thank you!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by