如何将元胞数组转化为一个矩阵
答案:2 悬赏:40 手机版
解决时间 2021-04-24 00:52
- 提问者网友:锁深秋
- 2021-04-23 10:19
如何将元胞数组转化为一个矩阵
最佳答案
- 五星知识达人网友:几近狂妄
- 2021-04-23 11:24
1、cell2mat(cell);
cell2mat是默认要求你的矩阵的大小是统一的。
2、str2num(char(cell));
3、cellfun(@str2num, cell)
cell2mat是默认要求你的矩阵的大小是统一的。
2、str2num(char(cell));
3、cellfun(@str2num, cell)
全部回答
- 1楼网友:忘川信使
- 2021-04-23 12:13
我也有此问题刚刚发现的方法:
数值,字符,矩阵,元胞,
数值:1,2,3
字符:形如’1’,’a’,’a’
矩阵:矩阵中的元素要求类相同,例如
数值矩阵[12;34]
字符型矩阵[’1’’a’;’a’’2’]
如果字符型矩阵中包含数值,则数值为空字符,即[’1’1’;a’’a’]=[’1’’’;’a’’a’]
元胞矩阵[{1}{2};{3}{4}],元胞矩阵的元素只能是元胞
元胞:比矩阵更强大,它的元素可以是数值、字符、矩阵、元胞,但它的元素必须组成矩阵
即可以写成a={’1’{2};[34]5}
其中a(1)=’1’字符,a(2)=[34]矩阵,a(3)={2}元胞,a(4)=5数值
但不能写成{’1’{2};[34]56},因为它的元素不能组成矩阵
相关语句:
double,num2str,sym,cell2mat,vpa
double把字符转换为ascii码对应值,例如double([’1’’a’])=[4597]
如果要使’1’返回值1,而不是ascii码对应的45,则需要使用vpa(’s’,n)
vpa用于显示字符,可以任意规定精度n,n不写即取默认值.例如double(vpa(’1’))=1
如果变量是数值,那么返回数值本身,即double(1)=1
double函数不能对元胞使用,即不能写成double({1})
num2str和sym把数值转化为字符,它们都能作用于矩阵,不同的是
用sym转换而成的字符是1×1维的,它主要是用于符号运算
cell2mat为取出元胞变量,cell2mat({’1’})=’1’,cell2mat({1})=1
为了把输入对话框中的元胞返回为数值进行运算,可以利用double(vpa(cell2mat({’1’})))=1来实现
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯