matlab并行计算踩坑

matlab中使用parfor处理循环,同时循环内计算的结果需要保存下来以供循环外处理

对于数字的保存,直接存在矩阵里面,目前没啥大问题

但是对于字符串的保存,矩阵存字符串最终全部值会变成NaN

我反复测试了几次,for循环用矩阵存字符串都没有问题,就是parfor有问题,而且存数值也没有问题,而且我把数值型的char字符数组转为字符串存进去后,循环外使用时也是显示的是double类型,最后直接简单粗暴的把所有结果都存为数值型了,用了几个矩阵来分别存放。

至于为啥引起以上原因,没有细究,有兴趣的友友可以去研究下,感觉和动态生成对象有点关系(ps,parfor里面的对象不能用循环之前已经声明的,这一点也是很不方便的)

忽然发现parfor里面的矩阵又可以在循环之前声明了,所以当使用字符串矩阵时,就在循环前先初始化一个矩阵,使用的时候就没问题了,代码如下:

resultData = strings(3);
parfor dfo = 1:3
    str = strcat('we','_');
    resultData(dfo) = str;
end

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值