簡體   English   中英

MATLAB-僅字符串的第一個字母正在打印

[英]MATLAB - Only First Letter of String is Printing

我在使用fprtinf命令(和sprintf )在MATLAB(2012a)中打印字符串時遇到問題。

我有12個日期(數字)的數組。 我正在使用以下命令將它們轉換為字符串:

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

當我調用months變量時,我得到以下(和期望的)輸出:

Jan12
Feb12
Mar12
Apr12
等等..

問題是當我調用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})

應該會給你你想要的。

只需將您的電話更改為

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

datestr在單獨的行上返回每個提供的日期的字符串。

或者,您可以使用cellstr函數將結果轉換為單元格數組(這也可以用於非固定長度的日期格式,例如'dddd'

months = cellstr(months);
fprintf('%s', months{1});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM