古賀@東工大です。
小野> MaTXで、fopenやfscanfのような関数が使えれば、どのような場合でも、
小野> 一応対処できると思うのですが、どうでしょう? MATLABには、そのよう
小野> な関数が用意されているので、よく利用しています。
宮腰> MATLABでも .mat と同じ形式のファイルを読み込むものだとばかり
宮腰> 思っていたのですが、違うという事が分かって、結局 .mat 形式の
宮腰> ファイルを読み込む関数を作るはめになりました。この手の命令があると
宮腰> 最終的には(頑張って関数を作れば)お手上げにならないで済むので、
宮腰> 保証としてあった方が良いかもしれませんね。
宮腰> 古賀さんが対処されるようですので、後は寝て待つだけ ? (^_^;
宮腰> ちなみに MATLAB で実現されている fscanf とかは、私はあまり
宮腰> 使い易いと思いません。慣れていないせいもあるのでしょうけど。
宮腰> C言語のそれと使い方を混同して、しばらくはまりました。
作ってみました。
fopen(path, mode) ファイルをオープンする
fclose(fd); ファイルをクローズする
fprintf(fd, format, ...) フォーマットにしたがってファイルに出力する
fscanf(fd, format) フォーマットにしたがってファイルから入力する
◎ fscanf()は読み込んだデータからなるリストを返します。
【例題】
Func void main()
{
Integer a;
Real b;
String c;
Integer id1, id2;
if ((id1 = fopen("afo", "w")) < 0) {
error("Can't open %s", "afo");
}
fprintf(id1, "%d %lf %s", 10, 3.1415, "Hello");
fclose(id1);
if ((id2 = fopen("afo", "r")) < 0) {
error("Can't open %s", "afo");
}
{a, b, c} = fscanf(id2, "%d %lf %s");
fclose(id2);
print a, b, c;
}
C言語のプログラムなのかMaTXのプログラムなのか
分からなくなりそうですが,こんなかんじでどうでしょう?
--
古賀 雅伸
koga@mei.titech.ac.jp