matlab避免使用for_求解如何避免使用四重循环解决多层for比较?

该博客探讨了如何在Matlab中优化字符串比较的过程,特别是针对大型Cell数组。作者提出了一种方法,通过两层循环实现Cell数组内字符串的相互比较,并通过ismember函数来提高效率。目标是创建一个14x14的矩阵,其中元素为1表示对应字符串相同,0则不同。讨论了避免四重循环的策略,以减少计算时间和错误的可能性。
摘要由CSDN通过智能技术生成

目前只能实现第一列14个字符串的比较,如何实现整个cell的比较?前提假设m行任何一个字符串与n行任何一个字符串相同,则path_sim(m,n)=1;   最终得到path_sim矩阵,path_sim应为14X14矩阵,其中不为0就为1;

m=14;

path_sim1=zeros(m);

for i=1:m-1

for j=i+1:m

a=path{i,1};

b=path{j,1};

s1=strcmp(a,b);

if s1==1

path_sim(i,j)=1

elsepath_sim1(i,j)=0;

end;

end;

如下为名为path的14x7cell。

1  2  3  4  5  6  7

1  DB00114   DB00117

2  DB00142

3  DB01839   DB02340

4  DB00125   DB00155   DB01110   DB01234   DB01686   DB01835   DB01997

5  DB00157

6  DB00114   DB00131   DB01696   DB02089   DB02320   DB02379   DB03288

7  DB00157   DB01763   DB03461

8  DB00157   DB03704   DB04153

9  DB00116   DB00157   DB04789

10  DB00157

11  DB00568   DB00617   DB00661   DB00909   DB01388   DB04841

12  DB00201   DB00277   DB00640   DB00651   DB00806   DB00824   DB00996

13  DB00171   DB00619   DB01254   DB03878   DB04868   DB05184   DB06616

14  DB00043   DB00895   DB05797

四重循环很容易出错,耗时长,是不是ismember可以解决?具体应该如何做? 求解答

来自: 微社区

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值