Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String MATLAB-仅打印字符串的第一个字母_String_Matlab_Date_Printf - Fatal编程技术网

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

String MATLAB-仅打印字符串的第一个字母,string,matlab,date,printf,String,Matlab,Date,Printf,我在使用fprtinf命令(和sprintf)在MATLAB(2012a)中打印字符串时遇到问题 我有一个包含12个日期(数字)的数组。我使用以下命令将它们转换为字符串: months = datestr(data(:,1)-365,12); %Mar13 format 调用months变量时,我获得以下(和所需)输出: 1月12日 二月十二日 三月十二日 四月十二日 等等 问题是当我调用fprintf或sprintf时,使用以下代码: fprintf('%s', months(1)) 我只

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

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

months = datestr(data(:,1)-365,12); %Mar13 format
调用
months
变量时,我获得以下(和所需)输出:

1月12日
二月十二日 三月十二日
四月十二日 等等

问题是当我调用
fprintf
sprintf
时,使用以下代码:

fprintf('%s', months(1))
我只会收到本月的第一封信,而不会收到完整的字符串。你知道如何让它打印完整的字符串吗


谢谢

只需将通话改为

fprintf('%s', months(1, :))
datestr
在单独的行中返回每个提供日期的字符串

或者,您可以使用
cellstr
函数将结果转换为单元格数组(这也适用于非固定长度的日期格式,如
'ddddd'


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

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

应该可以得到你想要的。

这很有效。非常感谢您的解释,我没有意识到它是一个字符数组,以前没有处理过。谢谢同样有效,感谢您的快速回复。将相应地调整我的代码。嘿,看起来我们的解决方案执行的操作顺序相反。:)
dates = num2cell(data(:,1)-365)
months = cellfun(@(x) datestr(x,12),dates,'UniformOutput',false)
fprintf('%s', months{1})