matlab 中一人元胞数组如何转化为相同的矩阵?

来源:百度知道 编辑:UC知道 时间:2024/06/03 17:00:32
在matlab中导入数据后为元胞数组形式,如何可以让其变成矩阵的形式,因为数据量大,所以手工很麻烦,没有函数之类的命令吗?

我也有此问题 刚刚发现的方法:

数值,字符,矩阵,元胞,

数值:1 ,2, 3
字符:形如 ’1’,’a’,’A’
矩阵:矩阵中的元素要求类相同,例如
数值矩阵[1 2 ; 3 4]
字符型矩阵[’1’ ’a’;’A’ ’2’ ]
如果字符型矩阵中包含数值,则数值为空字符,即[’1’ 1 ’;a’ ’A’]=[’1’ ’’ ;’a’ ’A’]
元胞矩阵[{1} {2};{3} {4}],元胞矩阵的元素只能是元胞
元胞:比矩阵更强大,它的元素可以是数值、字符、矩阵、元胞,但它的元素必须组成矩阵
即可以写成a={’1’{2} ;[3 4] 5}
其中a(1)=’1’字符,a(2)=[3 4] 矩阵,a(3)={2} 元胞,a(4)=5 数值
但不能写成{’1’ {2};[3 4] 5 6},因为它的元素不能组成矩阵

相关语句:
double,num2str,sym,cell2mat,vpa
double把字符转换为ASCII码对应值,例如double([’1’’a’])=[45 97]
如果要使’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来实现