【问题标题】:Averages of table with numeric and non numeric data (Matlab)具有数字和非数字数据的表的平均值(Matlab)
【发布时间】:2021-11-07 10:56:50
【问题描述】:

您好,我对编码(Matlab)相当陌生,想知道是否有人知道如何做到这一点。我有一个包含数字数据的表格,其中包含一些非数字数据。我想浏览表格数据并找到表格中每一行的平均值,不包括非数字数字。 谢谢

这是桌子:

|    a     |     b    |    c     |     d     |
|----------|----------|----------|-----------|
| '0.000'  | '0.000'  | '0.000'  | '71.725'  |
| '0.000'  | '0.000'  | 'xxxxx'  | '82.778'  |
| '0.000'  | '0.000'  | '0.000'  | '84.265'  |
| '0.000'  | '0.000'  | '0.000'  | '38.964'  |
| '2.258'  | '0.000'  | '1.628'  | '6.646'   |
| '0.000'  | '0.000'  | '1.245'  | '129.554' |
| '0.000'  | ''       | '0.000'  | '63.066'  |
| '0.000'  | ''       | '0.303'  | '84.729'  |
| '0.000'  | '0.000'  | '-0.001' | '114.079' |
| '0.000'  | '0.000'  | '0.182'  | '20.956'  |
| '0.000'  | '0.000'  | 'xxxxx'  | '15.421'  |
| '0.000'  | ''       | 'ygvt'   | '57.726'  |
| '0.000'  | '0.000'  | 'ijuhyg' | '85.433'  |
| '0.000'  | ''       | '0.000'  | '106.965' |
| '0.000'  | '0.000'  | '0.294'  | '132.627' |
| '0.000'  | '0.000'  | 'abc'    | '46.133'  |
| '12.864' | '0.000'  | '0.000'  | '1.850'   |
| '42.991' | 'aaaa'   | '14.562' | '47.279'  |
| '49.822' | 'bbbb'   | '17.713' | '65.436'  |
| '0.000'  | '0.000'  | '0.000'  | '85.881'  |
| '29.429' | '0.000'  | '1.322'  | '29.684'  |
| '11.784' | 'cccc'   | '0.000'  | '73.187'  |
| '0.000'  | '0.000'  | '0.000'  | '110.376' |
| '0.000'  | '0.000'  | '0.000'  | '66.343'  |
| '0.886'  | '0.000'  | '0.588'  | '38.150'  |
| '0.000'  | '0.000'  | '0.000'  | '24.694'  |
| '23.437' | '22.697' | '0.000'  | '9.468'   |
| '34.642' | '35.602' | '13.136' | '47.170'  |
| '0.000'  | '0.000'  | '0.000'  | '120.737' |
| '0.000'  | '0.000'  | '0.000'  | '196.755' |
| '0.000'  | '0.000'  | '0.000'  | '176.882' |

【问题讨论】:

  • 添加 MWE 总是有助于从该站点获得帮助。如果您添加您为完成任务所做的工作,那么其他人可以帮助您。因此,请添加您迄今为止尝试过的任何代码。

标签: matlab numeric


【解决方案1】:

看起来表中的所有数据当前都是字符串。其中一些字符串看起来像数字,可以解析为它们,但它们实际上不是数字。

使用str2double 解析这些字符串以将它们转换为数字。看起来像数字的字符串将变成数字值。看起来不像数字的字符串将变成NaN 值。然后使用nanmean() 获取平均值,忽略 NaN。

>> strs = {'1.234', 'whatever', '23.483', 'banana'}
strs =
  1×4 cell array
    {'1.234'}    {'whatever'}    {'23.483'}    {'banana'}
>> x = str2double(strs)
x =
    1.2340       NaN   23.4830       NaN
>> nanmean(x)
ans =
   12.3585
>> 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2023-04-01
    • 2022-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多