【问题标题】:Issues printing a character string in Matlab在 Matlab 中打印字符串的问题
【发布时间】:2020-07-17 16:20:15
【问题描述】:

我是 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            Rank\n');
fprintf(fid1, '-------        -------\n');
for k = 1:npts
    time_str = data.t(k);
    fprintf(fid1, '%s     %f3\n',time_str, data.rank(k));
end

fclose(fid1);

data.t 是 ,看起来像这样:

val =
2015-07-16T03:28:36.410305
2015-07-16T03:29:00.000000
...

我用 fprintf 得到的只是一个“2”。我尝试使用 convertCharsToStrings,但失败并显示错误消息:未定义函数“convertCharsToStrings”用于输入参数类型 '字符'。

这一定是我缺少的一些简单的东西。 谢谢, -迈克

【问题讨论】:

  • %f后面的3有必要吗?

标签: matlab


【解决方案1】:

由于“data.t is ”,试试这个:

...
for k = 1:npts
    time_str = data.t(k, :);
...

如果不使用, :,Matlab 将对矩阵使用线性索引而不是下标。

【讨论】:

    【解决方案2】:

    原来我需要使用不同的格式来获取时间字符串:

    time_str=data.t(k,1:end)
    

    【讨论】:

    • 不要重复发布答案,请投票并接受指出您的问题的答案。
    • 事实上,我看到你有很多问题,并且没有接受一个答案。请阅读this page in the help center
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-19
    • 1970-01-01
    相关资源
    最近更新 更多