MATLAB将单元格转换为双精度单元格,并将其连接或重塑为一列

MATLAB将单元格转换为双精度单元格,并将其连接或重塑为一列,matlab,concatenation,cell,mat,Matlab,Concatenation,Cell,Mat,我将lat和lon作为大小为1x7的单元(在每个单元中,单元是一列,行数不同)。我想将7列中的每一列转换为双精度,然后将它们连接成一列,这样我就有了一个大小为216x1的矩阵 例如(缩短版),如果 然后,我想以双重形式: 40.400959 40.695078 40.969112 41.264171 41.400968 41.517772 41.530011 41.550005 41.583183 41.603159 38.082155 38.176278 38.529631 38.612034

我将lat和lon作为大小为1x7的单元(在每个单元中,单元是一列,行数不同)。我想将7列中的每一列转换为双精度,然后将它们连接成一列,这样我就有了一个大小为216x1的矩阵

例如(缩短版),如果

然后,我想以双重形式: 40.400959 40.695078 40.969112 41.264171 41.400968 41.517772 41.530011 41.550005 41.583183 41.603159 38.082155 38.176278 38.529631 38.612034 38.700632

我成功地转换为double,但我不确定如何连接(或重塑)到列部分

for i = 1:7
    lat = str2double(lat_PM25{i});
    lon = str2double(lon_PM25{i});
end
使用以下命令:

str2double(vertcat(lat{:}))
工作原理:

lat{:}
提供一个以逗号分隔的单元格内容列表。每个单元格内容依次是字符串的单列单元格数组(我假定)

vertcat
将所有这些字符串的单列单元格数组连接到一个字符串的单列单元格数组中

str2double
将每个字符串转换为一个
double
数字,并将所有这些数字打包为一个列向量

例如:

给予

使用以下命令:

str2double(vertcat(lat{:}))
工作原理:

lat{:}
提供一个以逗号分隔的单元格内容列表。每个单元格内容依次是字符串的单列单元格数组(我假定)

vertcat
将所有这些字符串的单列单元格数组连接到一个字符串的单列单元格数组中

str2double
将每个字符串转换为一个
double
数字,并将所有这些数字打包为一个列向量

例如:

给予


我鞠躬,我鞠躬,我的回答在这里。我鞠躬,我鞠躬,我的回答在这里。
lat{1,1} = {
'40.400959'
'40.695078'
'40.969112'
'41.264171'
'41.400968'
'41.517772'
'41.530011'
'41.550005'
'41.583183'
'41.603159'};

lat{1,2} = {
'38.082155'
'38.176278'
'38.529631'
'38.612034'
'38.700632'};
ans =
   40.4010
   40.6951
   40.9691
   41.2642
   41.4010
   41.5178
   41.5300
   41.5500
   41.5832
   41.6032
   38.0822
   38.1763
   38.5296
   38.6120
   38.7006