• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

【转】[Matlab]从细胞型转换为矩阵From cell to matrix

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

[Matlab]从细胞型转换为矩阵From cell to matrix  

比如说你有一个细胞型文件,举个例子:
 >> a={\'8\';\'8\';\'8\';\'14\';\'21\';\'25\';\'27\';\'31\'}
a =
    \'8\'
    \'8\'
    \'8\'
    \'14\'
    \'21\'
    \'25\'
    \'27\'
    \'31\'
然 后呢,你想把这个细胞型文件转成矩阵,数据类型变成double,最简单的思维方式就是cell2mat,先转成string,然后再str2num就好 了。很可惜,在matlab里面,cell2mat是默认要求你的矩阵的大小是统一的,可是这里呢,‘8’的长度是1,‘14’的长度是2,所以转换的时 候就会出问题,就会出现错误提示。
 >> cell2mat(a)
??? Error using ==> cat
CAT arguments dimensions are not consistent.

Error in ==> cell2mat at 89
            m{n} = cat(1,c{:,n});

那么怎么办呢,Matlab官方论坛真是一个神一般的地方,终于不负我也。

方法No.1:
 str2num(char(cell))
没想到这么简单的一个函数char居然有这么神的功能,Matlab的函数真是深不可测。

方法No.2:
注意!!神一般的函数cellfun又出现了!!
 cellfun(@str2num, cell)
说 起这个CELLFUN函数,那真是无敌神函数啊,每当我面对细胞型数据万分苦恼无处下嘴之际,cellfun函数总能够挺身而出,用各种神奇的输入解决看 似复杂的问题,各种困难灰飞烟灭在谈笑之间。我开始还以为这个函数就是“cell fun”,意思是细胞型数组很好玩,我还想着Matlab的开发者们真是超级有学术幽默精神,科研之余还不忘laugh我等屌丝一把;后来才知道原来是 cell function的简称,真是羞愧到无地自容,真是没文化太可怕啊。
 
来自http://blog.163.com/6_mao/blog/static/632713152012318111738729/

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
delphi当月的第一天,当月的最后一天发布时间:2022-07-18
下一篇:
Delphi XE2 之 FireMonkey 入门(37) - 控件基础: TControl 概览发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap