我是MATLAB的新手,在将字符数组打印到文件时遇到问题。我只打印出第一个字符。我从文件中读取行,并构建矩阵矩阵。一个矩阵是字符向量的数组。以下是我如何读取数据
tline = fgetl(iin);
t_current = tline(9:34);
...
data.t = [data.t; t_current];
然后我做这个:
npts = length(data.t);
fid1 = fopen(fname, 'w');
fprintf(fid1, 'Day Rankn');
fprintf(fid1, '------- -------n');
for k = 1:npts
time_str = data.t(k);
fprintf(fid1, '%s %f3n',time_str, data.rank(k));
end
fclose(fid1(;
data.t是<10082,26炭>看起来像这样:
val =
2015-07-16T03:28:36.410305
2015-07-16T03:29:00.000000
...
我用fprintf得到的只是一个'2'。我尝试使用convertCharsToStrings,但失败了,并返回错误消息:类型的输入参数的未定义函数"convertCharsToStrings"char"。
这一定是我错过的一些简单的东西。谢谢-Mike
由于"data.t是<10082,26炭>";,试试这个:
...
for k = 1:npts
time_str = data.t(k, :);
...
如果不使用, :
,Matlab将对矩阵使用线性索引,而不是下标。
事实证明,我需要使用不同的格式来获取时间字符串:
time_str=data.t(k,1:end)