【问题标题】:Matlab repetitive plotting for a number of variablesMatlab重复绘制多个变量
【发布时间】:2026-02-06 23:50:02
【问题描述】:

我正在绘制一些变量,比如 Matlab 中的x,y,z(实际代码中有很多变量......)。为了避免任何愚蠢的错误,在Stata中是否有任何东西可以定义局部变量列表并使用循环来绘制列表中的每个变量?例如

 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 中绘图似乎不可信,因为数据具有多维性。 谢谢你的想法!

【问题讨论】:

  • Stata代码可以大大简化为foreach v of varlist x y z { hist `v' }。 (调整为多行,因为 cmets 不允许块代码)。
  • foreach v in x y z 也可以。

标签: matlab stata


【解决方案1】:

好的。我想出了方法。 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 

【讨论】:

  • 另一种被动性是使用 (a) xyz 或 (b) varargin 来创建函数。