2015-09-29 97 views
0

我繪製了很多變量,例如x,y,z(在Matlab中有很多實際代碼中有這些變量)。只是爲了避免任何愚蠢的錯誤,是否有什麼像在Stata中,你可以定義一個局部變量列表,並使用循環繪製列表中的每個變量?例如Matlab重複繪製多個變量

local varlist "x y z" 
local n: word count `varlist' 
local i=1 
while `i'<=`n' { 
    local var: word `i' of `varlist' 
    hist `var' 
    local i=`i'+1 
} 

在Stata中繪圖看起來不合理,因爲數據具有多維度。 感謝您的想法!

+3

Stata代碼可以大大簡化爲「varlist x y z {hist'v'}的foreach v」。 (調整爲多行,因爲註釋不允許塊代碼)。 –

+0

'foreach v in x y z'也會起作用。 –

回答

0

好的。我想出瞭如何做。 Matlab中用作varlist的數據類型應該是單元陣列。上面的Stata代碼的Matlab轉換是

varlist={x,y,z} 
for i=1:length(varlist) 
    figure(i) 
    temp=cell2mat(varlist(i)) %Transform cell array to matrix (vector) 
    hist(temp) 
end 
+0

另一種被動性是用(a)'x','y'或'z'或者(b)'varargin'來形成一個函數。 – user1543042