MATLAB str char cell num格式互相转换

简介

关于如何str char cell num格式互相转换的例子很多,但是都很单一,有时候使用的时候需要查找很久才可以解决问题。这里就对这几种方法进行一个汇总。
之所以会涉及使用cell,是因为涉及字符串、数字在同一个“矩阵”中,这时候需要使用cell进行存储,在数据处理时候又需要进行cell转矩阵,因此掌握这些转换方法可以使得程序更加简洁高效。

在这里插入图片描述

使用到的语法

cell2mat   % 将cell转换为mat的char型 
str2num    % 将mat从char转换为double型 
str2double %推荐使用该函数而不是str2num
cellstr    %char转cell 
num2str    %doublechar 
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数组也可以直接转换为数字矩阵。

猜你喜欢

转载自blog.csdn.net/wokaowokaowokao12345/article/details/108595246