You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Matlab如何计算同时包含数值和非数值数据的表格每行平均值

Matlab混合类型表格行平均值计算方案

你给出的表格所有单元格均为字符型内容,其中混有数值字符串、空字符串、无意义字符,实现排除非数值项计算行平均的逻辑非常简单,无需额外写复杂的校验规则:

核心实现代码

假设你已经将表格读入Matlab,存储为table类型变量T,代码如下:

% 可选:如果表格原本混有数值列和字符列,先统一转成字符串类型
% T = varfun(@string, T);

row_avg = zeros(height(T), 1);
for row_idx = 1:height(T)
    % 提取当前行所有内容,尝试转为数值,非数值自动转为NaN
    num_list = str2double(T{row_idx, :});
    % 计算平均值时自动忽略NaN值
    row_avg(row_idx) = mean(num_list, 'omitnan');
end

% 可选:将计算得到的行平均值追加到原表格末尾,方便后续查看导出
T.row_average = row_avg;

效果验证

以你给出的第二行数据为例:'0.000' '0.000' 'xxxxx' '82.778',经过str2double转换后得到数值序列[0, 0, NaN, 82.778],忽略NaN计算平均值为(0+0+82.778)/3 = 27.5927,符合需求。
如果某行所有内容均为非数值,计算结果会返回NaN,可根据需求后续自行过滤这类结果。

内容的提问来源于stack exchange,提问作者Nathan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 07:09:03