string - MATLAB - 仅打印字符串的第一个字母

标签 string matlab date printf

我在使用 fprtinf 命令(和 sprintf)在 MATLAB (2012a) 中打印字符串时遇到问题。

我有一个包含 12 个日期(数字)的数组。我使用以下命令将它们转换为字符串:

months = datestr(data(:,1)-365,12); %Mar13 format

当我调用 months 变量时,我获得以下(和期望的)输出:

2012 年 1 月
2月12日
3月12日
4月12日
等等..

问题是当我调用 fprintfsprintf 时,请使用以下代码:

fprintf('%s', months(1))

我只会得到该月的第一个字母,而不是完整的字符串。知道如何让它打印完整的字符串吗?

谢谢!

最佳答案

months 变量的结果数据类型是 NxM 字符数组。您需要将其作为字符串元胞数组进行处理。

dates = num2cell(data(:,1)-365)
months = cellfun(@(x) datestr(x,12),dates,'UniformOutput',false)
fprintf('%s', months{1})

应该能得到你想要的。

关于string - MATLAB - 仅打印字符串的第一个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16860488/

相关文章:

c# - 在 xpath 表达式中使用字符串文字是不好的做法吗?

java - 需要 URL 的最高目录

Matlab 柯尔莫哥洛夫-斯米尔诺夫检验

matlab - 在opencv中难以使用FFT和IFFT

java - 如何使 SimpleDateFormat.parse() 失败?

php - mysql不通过php将长字符串插入数据库

c++ - 更新 : program shows adress of fstream instead of the text file

matlab - 在 MATLAB 中将文本放入非事件轴

java - 为什么我的日历总是返回当前时间?

php - 允许 PHP date() 函数识别 dd-mm-yy 格式