gpt4 book ai didi

matlab - 比较matlab中的两个元胞数组元素

转载 作者:行者123 更新时间:2023-12-02 07:05:06 25 4
gpt4 key购买 nike

我正在尝试比较两个元胞数组,1x160 (a) 和 80x1(b)。我的元胞数组由内部有许多字符串的元胞组成。我想比较每个字符串并查看它们是否相等,如果它们相等,则插入到新数组,否则插入 0。我找不到任何功能。我尝试了“isequal”、“strfind”等。他们都给我下一条错误信息:

If any of the input arguments are cell arrays, the first must be a cell array of strings and the second must be a character array.

这是我的代码!

function [inter]=Intersect2(a,b)
int=cell(0);
b2=[b;b];

for i=1:length(a)
if a{i,1}==b2{i,1}(1) ( or 'isequal','strfind')
int{i}=a{i};
else
int{i}=0;
end
end

最佳答案

比较字符数组的方法有很多种,其中一种是strcmp .

我们将使用 cellfun以及避免循环。

a = {'Dude', 'I', 'am', 'a', 'moose'};
b = {'Well', 'I', 'am', 'a', 'mouse'};

index = cellfun(@strcmp, a, b);

这会将 a 的每个元素与 b 中的相应元素进行比较,返回逻辑数组 index1 当元素匹配时,0 当它们不匹配时。

使用它来分配匹配值:

int = cell(1, length(a));
int(index) = a(index);

int =

[] 'I' 'am' 'a' []

如果您愿意,您可以扩展这个概念来找到集合交集。

关于matlab - 比较matlab中的两个元胞数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13673244/

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