我在使用 fprtinf
命令(和 sprintf
)在 MATLAB (2012a) 中打印字符串时遇到问题。
我有一个包含 12 个日期(数字)的数组。我使用以下命令将它们转换为字符串:
months = datestr(data(:,1)-365,12); %Mar13 format
当我调用 months
变量时,我获得以下(和期望的)输出:
2012 年 1 月
2月12日
3月12日
4月12日
等等..
问题是当我调用 fprintf
或 sprintf
时,请使用以下代码:
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/