-1

以下に示すようなテキストファイルがあります。

a 1 2 3 4
b 5 6 7 8 
c 9 1 2 3
d 4 5 6 7

提供された入力に基づいて、テキスト ファイルから列を読み取る C コードが必要です。たとえば、C コードに 1 を渡す場合、出力を最初の列の 1D 配列にする必要があります。

1
5
9
4

コードに 3 を渡すと、3 番目の列が出力されます。

3
7
2
6

を使用して、MATLAB から C コードに入力を渡していますcoder.ref

4

2 に答える 2

1

私はあなたのためにコードを書きませんので、ここにいくつかのヒントがあります:

ここにはいくつかのオプションがありますが、最も簡単なものは次のとおりです。

ファイルからすべてのデータを読み取り、必要な列のみを表示します。

を使用 temp = fgetc(FILE *stream)してファイルを調べて、次のようなことを行うことで、それを行うことができます。

if(temp == ' ') j++;そしてif(temp == '\n') i++;

i行でありj、マトリックスの列です。

temp最後に、すべてをまとめて文字列 (文字の配列) を整数に変換する関数が必要になります。

于 2013-01-10T14:50:50.640 に答える
0

Unix / Linuxシステムを使用している場合は、コマンドラインツール(例cut)を使用してファイルを前処理し、列を抽出できます。

マトリックスがdata.txtというファイルにあるとしましょう。次に、次のことを実行できます。

% cat data.txt
a 1 2 3 4
b 5 6 7 8 
c 9 1 2 3
d 4 5 6 7


% cut -d " " -f 2 < data.txt
1
5
9
4

-dオプションは、テキストファイルの列間の区切り文字を指定します。-fは、切り取る列を指定します。列番号を取得して実行できるシェルスクリプトを作成できcutます。

于 2013-01-10T18:17:27.843 に答える