2011-12-10 29 views
1

私はMatlabの初心者ですから、助けていただければ幸いです!Matlabマトリックスに行ヘッダーと列ヘッダーを追加するにはどうすればよいですか?

 word1 word2 word3 word4 word5 
word1 1.2 3.5 4.1 2.1 3.6 
word2 5.1 4.2 3.7 6.3 5.9 
word3 8.3 4.6 5.5 9.1 5.3 
word4 7.1 8.2 2.1 1.7 4.3 
word5 2.4 2.5 3.2 6.8 9.2 

と私はyは行の次元であり、zは、マトリックス内の数値で、xは列の次元である3次元グラフを作成したい:私はこのようになりますいくつかのデータを持っています。 plot(x、y、z)とpcolor(x、y、z)を使いたいと思います。

これはどのようにしてMatlabで構成できますか?数値行列を作成し、それに何らかの形でヘッダを付けることはできますか?私は細胞マトリックスが必要ですか?

PS:特定の場所にインデックスを付けるときに検索できるようにしたいので、単語が必要です。

ありがとうございます!

答えて

2

Statistics Toolboxを使用している場合は、datasetオブジェクトを使用して列名と行名のデータを表すことができます。そうでない場合は、セル配列を使用して行/列名を表現できますが、索引付けは難しくなります。あなたが同じデータコンテナ(変数)に文字列や数値をミックスしたい場合は例えば、

M = {'', 'c1', 'c2', 'c3'; 'r1', 1, 2, 3; 'r2', 5, 6, 7; 'r3', 2, 4, 5} 

は、セル配列を使用すると、最も一般的な方法です。しかし、私はこれらを別々にしておくつもりです。

colNames = {'c1', 'c2', 'c3'} 
rowNames = {'r1', 'r2', 'r3'} 
data = rand(3,3) % A random matrix with 3 rows and 3 columns. 
をそして、あなたは、たとえば、「C1」と「R3」が指定のデータポイントをプロットしたい場合は、

i = find(strcmp(rowNames, 'r3')) % Row index 
j = find(strcmp(colNames, 'c1')) % Column index 
plot3(i, j, data(i,j)) % Plot the data at 'c1' and 'r3' location 

をコーディングすることができしかし、再び、これは次のようになります。たとえば、あなたが持っている可能性がありまた、数値データを扱うやや複雑な方法です。行/列のインデックスではなく、行/列の名前に基づくプロットは難しくなります。

ところで、plot(x,y,z)は有効なコマンドではありません。曲線の3Dプロットの場合は、plot3コマンドを使用する必要があります。

+0

ありがとうございます!これは本当に役に立ちます! – Thea

+0

@Thea MathWorksが 'dataset' [out](http://www.mathworks.com/help/stats/dataset.html)を使っているので、' table'オブジェクトを使う方が良いでしょう。 – EBH

関連する問題