No.3ベストアンサー
- 回答日時:
学習中である場合とする解答です。
使用パソコンは Linuxまたは Mac OSX などの UNIX系OSです。<・データの入力>
1)エディタで専用データファイルを作ることから始めます。
マトリックスは、それに対応した数値をファイル内配置します。
N
W0 W0 W0 W0 ....
W0 W1 W2 W3 ....
W0 W2 W4 W6 ....
....
N0
N1
N2
.
.
上記定義されたマトリックスを ↓のようにファイルに書き込む
仮に整数値としていますが、実数ならば実数値を書き込んで下さい。
5
0 0 0 0 ....
0 1 2 3 ....
0 2 4 6 ....
....
0
1
2
.
.
各数値間は半角スペースで区切ってそれぞれの数式定義対応マトリックスを作ります。
ファイル名は半角英字がエラーなく行えるので英字ファイル名を使うことを勧めます。
2)データの読み込み
データの入力は scanf() を使います。
最初にNを読み込めば、マトリックス行数がわかるため for() を使ってプログラムしますが、慣れない場合は腕力で scanf() 関数を連発するのもひとつの方法です。
データファイル読み込みに際しての疑問は、作成したプログラムを起動する際、ターミナルのシェルプロンプトとから
./a.out<データファイル名
と打鍵すればデータファイルを取り込むことができます。
以上をCで表すと次のようになります。scanf() はそちらで勉強して下さい。
プログラム作成に際しては、一気に書き込まず。途中で printf() を入れてデータ取り込みを確認されることを勧めます。
3)Cプログラム
/* magatai.c DFT program
* file name: magatai.c
* compile: gcc magatai.c
* execution: ./a.out<data_file
*/
#define N 10 取り込みデータ数+α
double n;
double w[N][N];
double x[N];
int main(void)
{
int i, j;
scanf(%d, &n);
for (i = 0; i < n; i++)
scanf(%......
.... ↓のフーリエ式が入る。
.... ↓↓の結果の出力が入る。
return 0;
}
<・フーリエ変換>
これは for() の入れ子になります。
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++ {
フーリエ変換式;
}
}
<・結果の出力>
printf() を使います。↑のフーリエ・プログラムに続いて書きます。
for (i = 0; i < n; i++ )
printf("%f?n", x[i]);
計算結果を特定のファイルに残したいという場合は、プログラム起動の際、リダイレクトを使います。
./a.out<データファイル名>書き込むファイル名
後は、 cat などを使ってファイルをリストすれば良いでしょう。
参考URL:http://laputa.cs.shinshu-u.ac.jp/~yizawa/InfSys1 …
No.2
- 回答日時:
DFTのコードを書くのが目的ですか? それとも利用することですか?
後者なら適当なライブラリを呼び出せばいい。あなたが書くのは入出力だけです。
参考URL:http://www32.atwiki.jp/amaeda/
No.1
- 回答日時:
それって, ほとんど何も書いてないよ. およそあらゆる処理が「データの入力→適切な処理→結果の出力」なんだけど....
「DFT」がどのような処理なのかは理解できていますか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 離散フーリエ逆変換が周波数分割数をNにできる理由について 4 2022/09/18 12:56
- 数学 「FFTの基本は、DFTはサンプル数Nが偶数なら 2つのDFTに分解できるということ。 分解するとD 3 2022/03/31 21:01
- 数学 フーリエ変換後の負の周波数成分の扱いについて 4 2022/09/03 10:18
- 数学 数学の質問です。 関数f(t)のフーリエ変換をF(ω)=∫[-∞→∞]f(t)exp(-iωt)dt 1 2023/07/29 01:08
- 数学 フーリエ変換、逆変換の「2π」の扱いについて 3 2022/10/07 08:31
- 物理学 フーリエ変換の振幅について 1 2022/09/04 08:56
- 物理学 移流熱拡散方程式の解き方 フーリエ変換 1 2022/08/15 15:25
- その他(プログラミング・Web制作) プログラミング 処理速度 1 2022/11/25 11:05
- 数学 f(x)=e^(-ax+b) のフーリエ変換をフーリエ変換の定義に従って計算せよ。但し、a>0、bは 1 2023/02/06 18:26
- その他(プログラミング・Web制作) 変換のプログラムを教えてください。 6 2023/07/01 09:57
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access のレポートをPDFに変換...
-
サウンド出力のデバイスを選択...
-
出力をExcelにすることは可能??
-
ファイル形式またはファイル拡...
-
OCRで起こしたテキスト文字をCS...
-
VC++でUTF-8のファイルを出力し...
-
標準出力とファイルに効率的に...
-
ファイル出力の場所を指定
-
VBA でメモ帳へ保存する際の保...
-
Paiza Cloudです。学籍番号と氏...
-
Maximaでダブルクリックでwxmフ...
-
WordをPDFに変換
-
井戸型ポテンシャルの数値解シ...
-
コマンド(例えばls)の出力結果...
-
C言語での印刷方法
-
どんなプログラムを書いても指...
-
C言語初心者の質問失礼します。
-
リストビュー ⇔ 別ファイル構...
-
バッファとは何ですか
-
ShellExecute、エクスプローラ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Paiza Cloudです。 どうやれば...
-
Paiza Cloudです。学籍番号と氏...
-
Acccess レポートをグループ別...
-
ファイル出力の場所を指定
-
コマンド(例えばls)の出力結果...
-
VC++でUTF-8のファイルを出力し...
-
テキストファイルに改行コード...
-
シェルコマンドの 2>&1 とはど...
-
VBA でメモ帳へ保存する際の保...
-
ファイル形式またはファイル拡...
-
fortranのtxtファイル出力書式...
-
CSV形式に変換
-
printfだと出力されるのにfprin...
-
C++ fprintf_sの使い方がわからん
-
c言語の質問です。 ランダムに4...
-
Wordマクロで指定したフォルダ...
-
C++/CLIにて、System.String^型...
-
pcap形式データをテキストへ抽出
-
二次元配列をクリップボードに...
-
raw形式からbmp形式への書き込...
おすすめ情報