matlab中双值字符型数据

matlab中双值字符型数据,matlab,Matlab,我有一个char类型的值,我需要把它放在一个double矩阵中,它是一个混合var类型的矩阵 data=load('matric_wind.mat'); f=fieldnames(data); ddd=f(20,1); cc=numel(f) FF=zeros(2,cc); for i=1: cc KKK =data.(f{i}) % get the table of *.mat kk=(f{i}) %get the name of the table above

我有一个char类型的值,我需要把它放在一个double矩阵中,它是一个混合var类型的矩阵

data=load('matric_wind.mat');
f=fieldnames(data);
ddd=f(20,1);
cc=numel(f)
FF=zeros(2,cc);
for i=1: cc 
  KKK =data.(f{i})  % get the table of *.mat 
  kk=(f{i})         %get the name of the table above
 digits = regexp( kk, '\d', 'match');
 result = [digits{:}]    %result is a char type value ,it is something like :'Windv_x_20070525_000000'

 FF(1,i)=KKK(49,156)    %FF(1,i) filled with double values
 FF(2,i)=result        
end
我收到订阅的分配维度不匹配。行中的错误:FF2,i=结果 请帮忙

使用str2num

例如:

x=str2num(x)
就你而言:

FF(2,i) = str2num(result)
首先键入格式长g

>> format long g

>> '20070525000000'

ans =

20070525000000

>> str2num(ans)

ans =

     20070525000000

结果是这样的:“20070525000000”,但根据您的建议,将其更改为2.oo71e+13,我需要与它完全相同的20070525000000部分is@nazanin-你为什么不告诉我们为什么它不起作用?你期望什么样的产出?这个数字的浮点数表示法和你要找的是同一个数字。@rayryeng-我之前说过问题是:我需要确切的20070525000000,因为它不是一个数字,事实上是一个日期,我希望它不是以科学的方式与浮点数或其他。。。。事实上,我需要一个矩阵,每个列中有不同类型的数据。。。。默认情况下,@nazanin-MATLAB矩阵是齐次的,其中包含双类型var的列、另一列char类型var、…..@nazanin-MATLAB矩阵。除非使用单元格数组,否则不能有具有不同数据类型的不同列。在我们继续之前,您可能应该重新考虑数据的结构,并进一步帮助您。我也不明白科学记数法有什么问题。如果您打算按原样使用数字,那么当您将其用于需要如此高精度数字的函数中时,它就无关紧要了。这两种方法都会奏效。如果你想美化它,你别无选择,只能使用字符串。因此,请尝试使用fprintf。