如何在MATLAB中找到多于一列的多列?

Lit*_*les 1 matlab

我有一个列向量,是其他多列的平均值(在向量中).我希望索引矩阵的每个元素都大于平均向量.我能够一次做到这一点:

idx = y1<y2
Run Code Online (Sandbox Code Playgroud)

但是,如果y2是矩阵,则会出现错误.我目前解决的问题是:

y1 = [y1;y1]
Run Code Online (Sandbox Code Playgroud)

但这是相当不优雅的,并没有考虑y2到未知大小.问候

Div*_*kar 7

我想你正在寻找这样的东西 -

idx = bsxfun(@lt,y1,y2)
Run Code Online (Sandbox Code Playgroud)

这将产生相同的大小的输入矩阵的逻辑阵列y21',其中在元件S y2greater than在相应的元件y10的其他.

bsxfun解决这个问题的最好方法是它需要处理expansion.那么,你所拥有的是一个通用的解决方案,甚至没有查询sizes.

  • @Kamtal我每天都告诉自己! (3认同)
  • 我想你可以用`bsxfun`解决所有问题!做得好. (2认同)