2011-02-14 9 views
1

すべての結果を表示するには、マットファイルのコンテンツを表示します。私はそれを読み込んでダブルクリックして、コンテンツがワークスペースに表示されていることを知っています。この場合は、マットファイルの内容にはほとんど情報がありませんが、13000を超えるレコードのマットファイルのコンテンツ情報を表示すると、 。誰も私がテーブルとしてマットファイルを表示する方法を見つけるのを助けることができますか?matlabにマットファイルを表示

ありがとう

+3

[Matlabの構造体にフィールドが存在するかどうかをチェックしてください](http://stackoverflow.com/questions/4026690/check-if-field-exists-in-matlab-struct-without-loading-it) ) – gnovice

+2

gnoviceのコメントに同意しない:MATファイル内にフィールドが存在するかどうかを確認するだけです。これはMATファイルのサブセットを読み込んで操作できるようになります。 – btown

答えて

2

あなたはいくつかの選択肢があります。明確なワークスペースから開始して、マットファイルをワークスペースにロードすることができます。ワークスペース内にあるものは、マットファイル内にあります。変数ビューアーを使用するか、スクリプトで解析することができます。

Simulink.saveVarsを使用すると、Simulink.saveVarsを使用して、同じ内容を生成する人間が判読可能なmスクリプトに作業領域の内容を保存できます。この機能はSimulinkとは関係がないため、これを行うにはSimulinkが必要です。

4

あなたのデータ(多次元、構造体、セル配列)の形式はわかりませんが、 "openvar"という関数があり、これらは非常に便利です。

のが大きなランダム500x500x10 3Dマトリックスを定義してみましょう:

large = rand(500,500,10); 

この変数は250万、二重の値が含まれており、近いメモリの20メガバイトまでかかります。上のワークスペース]ウィンドウでダブルクリックして、変数エディタでこれを開くと、「大」、通常は(少なくとも私のシステム上で)、次のメッセージが得られます:

 
"Cannot display summaries of variables with more than 524288 elements." 

をしかし、あなたは、特定の開くために、「関数openvar」-functionを使用することができます部分:

これは、変数エディタ(ここでは500x500行列)の行列の最初の「レイヤー」を開きます。これは、大きな変数の特定の部分を調べる必要がある場合に便利です。

あなたは常にあなたの大きな変数のサブセットが含まれている新しい変数を定義することができます。もちろん、

less_large = large(:,:,1); 

を...そして、ワークスペースウィンドウでそれをダブルクリックして、変数エディタで「less_large」を開きます。しかし時には "openvar"メソッドが少し速く/簡単です。

+0

私のデータのフォーマットは配列の構造体には画像ファイル名が含まれており、別の変数には色ヒストグラムなどの数値が含まれています – zenab

+0

@zenab:私は完全に分かりません。ファイルのサイズはメガバイト単位ですか?ファイル全体をワークスペースに開くことはできますか?もしそうでなければ、上記の私の方法は貴重な価値がないからです。 –

+0

私はあなたにopenvar関数を使用するための次の例を挙げます:my mat file(colHist。colHis(カラーヒストグラム)、(colHist.mat)をロードしてから、次のように書く:openvar(col .Nam)が、私はこの問題を解決するために私を助けてください、MATLABの作業スペースで空のワークシートを取得 – zenab

1

データを読み込んだ後、whosを使用して現在のワークスペースの変数を表示するのはどうですか?他のすべての変数を表示する前にクリアすることもできます。

関連する問題