MATLAB str char cell num格式互相转换
简介关于如何str char cell num格式互相转换的例子很多,但是都很单一,有时候使用的时候需要查找很久才可以解决问题。这里就对这几种方法进行一个汇总。之所以会涉及使用cell,是因为涉及字符串、数字在同一个“矩阵”中,这时候需要使用cell进行存储,在数据处理时候又需要进行cell转矩阵,因此掌握这些转换方法可以使得程序更加简洁高效。使用到的语法cell2mat% 将cell转换为mat
·
简介
关于如何str char cell num格式互相转换的例子很多,但是都很单一,有时候使用的时候需要查找很久才可以解决问题。这里就对这几种方法进行一个汇总。
之所以会涉及使用cell,是因为涉及字符串、数字在同一个“矩阵”中,这时候需要使用cell进行存储,在数据处理时候又需要进行cell转矩阵,因此掌握这些转换方法可以使得程序更加简洁高效。
使用到的语法
cell2mat % 将cell转换为mat的char型
str2num % 将mat从char转换为double型
str2double %推荐使用该函数而不是str2num
cellstr % 将char转cell
num2str % 将double转char
num2cell % 将double直接转cell
num2str
官方文档:https://ww2.mathworks.cn/help/matlab/ref/num2str.html
点评,该函数对矩阵,以行为单位进行转换为char型矩阵。
cellstr
官方文档:https://ww2.mathworks.cn/help/matlab/ref/cellstr.html?s_tid=srchtitle
将str数字转换为字符向量元胞数组。
用法:
seasons = ['Seasons'; cellstr(num2str(seasons))]
str2double
推荐使用str2double而不是str2num,是因为当cell中存储的str不是等大小时,str2num将会出错。
例如:
cellstr({'12', '123', '-9999'})
结果:
1×3 cell 数组
'12' '123' '-9999'
str2num效果:
str2num(cellstr({'12', '123', '-9999'}))
错误使用 str2num (line 31)
需要字符矢量或数组输入。
str2double效果:
str2double(cellstr({'12', '123', '-9999'}))
ans =
12 123 -9999
str2double对于多维cell数组也可以直接转换为数字矩阵。
aot = str2num(cell2mat(data(:,7)));
aot = str2double(data(:,7));
更多推荐
所有评论(0)