【问题标题】:Finding mean in cell with condition在有条件的单元格中找到平均值
【发布时间】:2012-04-22 12:56:06
【问题描述】:

我有以下几点:

a='abaacacbaa'    'abaaabaaaa'    'dcdcbbcccc'    'acaaaaabba'

v=[1x10 double]    [1x10 double]    [1x10 double]    [1x10 double]
v{1}=0.0064    0.4009   -0.0125   -0.0913    0.5707    0.0442    0.5210    0.3174   -0.2201    0.0570

letter={1x1 cell}    {1x1 cell}    {1x1 cell}    {1x1 cell}
letter{1}='a'


Here i=4 and j=10

我想为每个 i 找到 v 中的条目的平均值,其中 a 中的对应条目等于字母{i}。

使用@Bill Cheatham 提到的Finding mean of selected entries only

等式:

   mean(v(a == 'a')) 

所以我尝试了:

  for k=1: 4
   for j=1: 10 
     M= mean(v{k}(char(a{k}(j))==char(letter{k})));
     Ms{k}=M;
    end
  end

也试过用

   a(:) and
    mat2cell(v)

所以结果应该是: Ms= [第 1 行的平均值} {第 2 行的平均值} {第 3 行的平均值} {第 4 行的平均值}

把括号放在此处使分隔更明显

谢谢

【问题讨论】:

  • 听起来你应该离开 j 循环,然后只是 char(a{k}) == char(letter{k})...
  • 感谢@Dan 你救了我的命

标签: matlab mean


【解决方案1】:

按照 Dan 的建议,去掉 j 循环解决了问题

【讨论】:

    猜你喜欢
    • 2015-07-27
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    • 2019-10-28
    • 1970-01-01
    • 2020-08-23
    • 2021-02-03
    相关资源
    最近更新 更多