0

テキストファイルに書かれた行列をロードするmatlabコードを書いたので、それを画像として表示したいと思います。テキスト ファイルには 0 から 2 までの整数がランダムに含まれており、それぞれを異なる色 (0 は白、1 はある色、2 は別の色) で表現したいと考えています。すぐ下のmatlabコードを提供します:

clc;
clear all;

for i=1:10
 k=num2str(i);
 f = strcat('test_file_num_',k,'.txt');
 a{i} = fileread(f);

 [m,n] = size(a{i});

 a{i} = reshape(a{i},12,10);
 a{i} = a{i}';
 a{i} = a{i}(:,1:10);

end

フォルダーには 10 個のテキスト ファイルがあり、それぞれに 0 から 2 の整数を含むランダム マトリックスが含まれており、各テキスト ファイルの名前は "test_file_num_" で始まり、a{i} には 10x10 マトリックスのマトリックスがあります。今、私は a{i} 行列を画像やグラフなどとして表現したいのですが、行列の内容を別の色で表示するものを持ちたいと思っています。ご助力いただきありがとうございます。

4

2 に答える 2

0

ファイル内のデータが構造化されている場合、数値の間にタブまたはスペースがありimportdata、データをマトリックスにロードするために直接使用できます。その後、 を使用imagescして画像を生成できます。色を割り当てるには、colormap関数を使用してカラーマップを変更できます。したがって、コードは次のようになります。

% Example data
A = floor(3*rand(10)); 
% Change colormap with just 3 colors (Red,Green,Blue)
cmap = [1 0 0;0 1 0;0 0 1];
figure; imagesc(A); colormap(cmap); colorbar;

それが役立つことを願っています!

于 2013-01-15T23:16:54.370 に答える
0

あなたは機能を探していimagescます。

str2numただし、数値を文字として読み取っているため、前に使用する必要があります。

すなわち:

imagesc(str2num(a{i});

ファイルを数値としてすぐに読み取りたい場合は、次のようにする必要があります。

fid = fopen(f);
a{i} = fscanf(fid,'%u',inf);
fclose(fid);
于 2013-01-15T22:08:45.553 に答える