gpt4 book ai didi

matlab - 根据包含数字数据作为字符串的行索引对子矩阵求和

转载 作者:太空宇宙 更新时间:2023-11-03 20:20:14 25 4
gpt4 key购买 nike

如何对单元格子部分的每一列求和?给定一个单元格 A

A = {'a'  '546.8'  '543.5'  '544'  
'a' '641.9' '637.4' '632.3'
'a' '214.7' '214.1' '231.8'
'a' '256.9' '255.6' '254.2'
'c' '356' '355.1' '354.4'
'c' '759' '759.6' '756.2'
'c' '352.2' '350.4' '350.8'
'f' '234' '230.3' '232.3'
'f' '225' '223.5' '221.8'}

根据A的第一列不同的字母将A分成子单元格,并对子单元格的各列求和。

预期的结果是:

B = {'a'  '1660.3'  '1650.6'  '1662.3'  
'c' '1467.2' '1465.1' '1461.4'
'f' '459' '453.8' '454.1'}

最佳答案

不需要循环:

%// get unique rows
[ids,~,subs] = unique(A(:,1))
%// transform string data to numeric data
vals = str2double(A(:,2:end))
%// sum unique rows
sums = accumarray(subs, 1:numel(subs), [], @(x) {sum(vals(x,:),1)} )
%// output result
out = [ids(:),num2cell(cell2mat(sums))]

关于matlab - 根据包含数字数据作为字符串的行索引对子矩阵求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39403289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com