• ベストアンサー

行列のファイル入力の仕方

Prog_HIGEの回答

回答No.3

バイナリで書き出して読み込むというのはどうでしょうか? 以下に動作テストはしていませんが、バイナリでのファイル操作の例を載せます。 #include<stdio.h> #define R 3 #define C 3 int main( ) { int i, k ; FILE *fp = NULL ; int mat[ R ][ C ] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } } ; int tmp[ R ][ C ] ; fp = fopen( "out.txt", "wb" ) ; fwrite( mat, R * C, sizeof( int ), fp ) ; fclose( fp ) ; fp = fopen( "out.txt", "rb" ) ; fread( tmp, sizeof( int ), R * C, fp ) ; fclose( fp ) ; for( i = 0 ; i < R ; i ++, puts( "" ) ) for( k = 0 ; k < C ; k ++ ) printf( "%d", tmp[ i ][ k ] ) ; }

tomoki17
質問者

お礼

回答ありがとうございます。 バイナリファイルについての知識が不足しているため、試すことができませんでしたが、今後、勉強して生かしていきたいと思います!

関連するQ&A

  • 3×3よりも大きな行列の入力方法について

    2007 wordにて、挿入>特殊文字>数式>行列で、行列を入力する場合、 3×3はデフォルトで選択可能ですが、それよりも大きな行列はデフォルトで用意されていません。 5×5などの行列を入力する方法で、何か良い方法はないでしょうか。 よろしくお願い申し上げます。

  • エクセルで行列を入れ替えるをフォルダ単位で行いたい

    タイトルの通り、行列を入れ替えたいエクセルファイルがあるのですが、数が多くいちいちファイルを開いてやるのはあまり、いいやり方ではないかなと思っています。どなたか、ファイルをひからずに、フォルダに入っているファイルごとに行列入れ替えを適用する方法をご存知の方がいらっしゃいましたらよろしくお願いします。 入れ替えごのファイルは元のファイルを上書きしても大丈夫です。

  • この行列式を効率よく解く方法が見つかりません

    次の行列式を計算せよ。 |a bc a^2| |b ca b^2| |c ab c^2| …タイトル通りですが、この行列式を効率よく解く方法が見つかりません。 もし、第二列をすべてabcに出来たら括り出して並べ替えてファンデアモンデを使うのですが…。 でも、第一列を第二列に掛けたら、違う行列式になってしまいますよね…。 まずは最初の一歩だけを教えてください。お願いします。

  • 行列の括弧が入力できません。

    ワード2003、数式エディタ3.3を使っているのですが、 行列の括弧が入力できません。括弧の中に(2,2)以上の行列をはめ込むと括弧が消えてしまいます。 行列を入力してから括弧をつけようとしてもできません。 行列式はできるのですが、行列に使われる括弧は消えてしまいます。 他にも、いろんなものが入力できません。消えてしまうんです!! ものすごく困っています。どなたか教えてください!! 再インストールもだめでした。 以前は普通にできていたのですが・・・。

  • excelで行列を非表示にするとファイルサイズが大きくなるのはなぜ?

    質問はタイトル通りです. ドラッグしたときに不必要にカーソルが縦横に流れていく(この状態わかりますでしょうか?)のが厄介なので,右下の不要な行列を非表示に変えたところ,ファイルサイズが急に1MB近くなり,動きも遅くなってしまいました. こうなる理由はなぜなんでしょう?また,ドラッグしたときに,ある行列以上右,下にカーソルが行かないように,シートの行列数自体を小さくすることはできるのでしょうか?

  • ファイル名入力のタイトル削除の仕方

    エクセルやワードのファイルを開く際に、タイトルを入力する欄がありますが、既に使用していないタイトル(履歴の様に残ってしまっている物)を消す方法を教えてください。

  • 行列の連立一次方程式

    タイトルどおり行列の連立一次方程式がまったくわかりません   |1| x= | 3|   |0| までは掃き出し方でといたのですがそれ以降がわかりません 残りはどうやればいいのでしょうか? ちなみに答えは   |1|   |-3| x= | 3|+C |-1|   |0|   |1 | となってます

  • エクセル かな入力と英数入力を行列ごとに切り替える

    エクセルで住所録を作成していますが、 名前はかな入力、電話番号やメールアドレスは英数入力にしたいのですが、毎度切り替えずに 行列ごとに入力方法を切り替える方法はありますか。 宜しくお願いします。

  • 行列の比較

    M行N列(M×N)の行列A,B,Cがあるとき。 行列Aに対してBとCどちらが近いかを比較する方法には どのようなものがあるのでしょうか。 例 行列A(3×3) 1 1 1 1 1 1 1 1 1 行列B(3×3) 1 1 2 2 1 1 1 1 1 行列C(3×3) 2 2 2 2 2 2 2 2 2 例では誤差で考えるとBの方がAに近いのですが 行列内の互いの数値関係が同じ(同じ値)ということで Cの方がAに近い性質を現していることを数値で示したいと考えています つまり求めたいのは相関(?)のような近さです 思いつくのは一列づつ相関をとって最終的に全ての行での 平均をとる方法ですが 他に上手く(出来れば一つの数字で)近さの程度を表す方法や 一般的な方法があれば教えて頂けないでしょうか。 よろしくお願い致します。

  • 行列計算の因子入力について

     エクセル、特に行列計算に関して初心者です。エクセルを使って行列計算を行おうと思います。  念のため、ここで言う「行列」とは、一般に使われる「行と列」と言う意味ではなく、数学上の行列計算、所謂マトリクス演算のことです。  例えば以下のような2×2の行列を入力する場合、  1 2  3 4 ={1,2;3,4} と入力すればよいと言うところまでは分かったのですが、ここの1~4までの数値は直接キーボード等から入力することしかできません。  私としては別のセルにある数値や計算結果等をこの部分、たとえば「1」のところの値にしたいのですが、どうすればよいのでしょう?  以上、よろしくお願いいたします。