Info

この質問は閉じられています。 編集または回答するには再度開いてください。

fprintf problem, can't print

1 回表示 (過去 30 日間)
Thanh Cao
Thanh Cao 2018 年 4 月 16 日
閉鎖済み: MATLAB Answer Bot 2021 年 8 月 20 日
My code is as follow:
for i = 1:length(Ta)
fprintf(fid, '%s;%.2f;%.2f;%.2f;%.2f\n', DateTimeStr(i), Ta(i), Pa(i), Tb(i), Pb(i));
end
DateTimeStr(i) is an string array of 14 characters. Ta(i), Pa(i), Tb(i), Pb(i)) are floating number.
Somehow in my text file DateTimeStr(i) only print 1 character, the rest is OK. Here is how it print to file:
2;55.05;87.82;54.26;84.27
2;55.04;87.80;54.26;84.27
2;55.07;87.81;54.26;84.28
2;55.04;87.81;54.25;84.28
2;55.03;87.81;54.25;84.28
it should be like this
20120906093000;55.04;87.80;54.26;84.27
20120906093100;55.07;87.81;54.26;84.28
20120906093200;55.04;87.81;54.25;84.28
20120906093300;55.03;87.81;54.25;84.28
  1 件のコメント
Jan
Jan 2018 年 4 月 16 日
編集済み: Jan 2018 年 4 月 16 日
What exactly is "a string array of 14 characters"? Obviously "DateTimeStr(i)" causes the problem, so please post exactly the type and size of this variable as well as its contents.
In my test it works as expected:
D = ["12345678901234", "12345678901234"]
fprintf('%s;\n' D(1));
So please explain the difference of this simple example and your data.

回答 (1 件)

Star Strider
Star Strider 2018 年 4 月 16 日

Since ‘DateTimeStr’ is likely an character array, you have to address it as such in the variable reference to it:

fprintf(fid, '%s;%.2f;%.2f;%.2f;%.2f\n', DateTimeStr(i,:), Ta(i), Pa(i), Tb(i), Pb(i));
  5 件のコメント
Stephen23
Stephen23 2018 年 4 月 16 日
編集済み: Stephen23 2018 年 4 月 16 日
@Star Strider: that makes sense. I was mislead by the description "a string array of 14 characters", and somehow thought this was a vector. Oh well.
Star Strider
Star Strider 2018 年 4 月 16 日
It confused me too at first.
I experimented by printing it first with a single subscript, (printing only a 2), then adding the second subscript and printing the entire character vector. That’s when I figured out that ‘DateTimeStr’ is an array of character vectors, since only that assumption will produce the observed results.

この質問は閉じられています。

タグ

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by