gpt4 book ai didi

arrays - Matlab:连接两个单元格数组或结构

转载 作者:行者123 更新时间:2023-12-04 04:33:42 25 4
gpt4 key购买 nike

在 Matlab 中如何连接两个单元阵列或结构?

我有第一个单元格数组(或结构):

Name
A1
A1
B1
C2
C2

第二个元胞数组(或结构):
Name  Value Type
A1 1 a
B1 56 b
C1 12 c
C2 58 c
C3 45 c
C4 15 c

我需要得到这个结果:
Name  Value  Type
A1 1 a
A1 1 a
B1 56 b
C2 58 c
C2 58 c

谢谢

最佳答案

如果数据是元胞数组:使用 ismember 的第二个输出:

cell1 = {'A1';'A1';'B1';'C2';'C2'}; % example data
cell2 = {'A1',1;'B1',56;'C1',12;'C2',58;'C3',45;'C4',15}; % example data

[ii jj] = ismember(cell1,cell2(:,1));
result = cell2(jj(ii),:)

如果数据是结构矩阵:你只需要对上面的代码做一些小的修改:
mat1.Name = ['A1';'A1';'B1';'C2';'C2']; % example data
mat2.Name = ['A1';'B1';'C1';'C2';'C3';'C4']; % example data
mat2.Value = [1; 56; 12; 58; 45; 15]; % example data
mat2.Type = ['a';'b';'c';'c';'c';'c']; % example data

[ii jj] = ismember(mat1.Name,mat2.Name,'rows');
result.Name = deal(mat2.Name(jj(ii),:));
result.Value = deal(mat2.Value(jj(ii),:));
result.Type = deal(mat2.Type(jj(ii),:));

关于arrays - Matlab:连接两个单元格数组或结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20109303/

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