我有lat和lon作为大小为1x7的单元格(其中每个单元格内部,单元格是具有不同行数的列)。我想将7列中的每一列转换为double,然后将它们连接成一列,以便我有一个大小为216x1的矩阵。
例如(缩短版),如果
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'
然后,我希望以双重形式: 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
答案 0 :(得分:4)
使用此:
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