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_”开头,在{i}中我有一个 10x10 矩阵的矩阵。现在我想将 a{i} 矩阵表示为图像或图形或其他任何东西,但要拥有可以以不同颜色显示矩阵内容的东西。感谢你的帮助。

4

2 回答 2

0

您正在寻找该imagesc功能。

但是您需要使用str2numbefore 因为您将数字读取为字符。

IE:

imagesc(str2num(a{i});

如果您想立即以数字形式读取文件,您应该这样做:

fid = fopen(f);
a{i} = fscanf(fid,'%u',inf);
fclose(fid);
于 2013-01-15T22:08:45.553 回答
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 回答