MATLAB将单元格转换为双精度单元格,并将其连接或重塑为一列
我将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,但我不确定如何连接(或重塑)到列部分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
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