filename = 'low2.xlsx'; sheet = 1; data = xlsread(filename, sheet); num_images = size(data, 1); image_size = [10, 10]; data_images = zeros([image_size, num_images]); for k = 1:num_images num_elements = numel(data(k,1:5)); num_rows = ceil(num_elements/image_size(1)); image_matrix = reshape(data(k,1:5), num_rows, [])'; % 转置后再reshape resized_image_matrix = imresize([image_matrix, zeros(5, 1)], [10, 2]); % 在右边添加空列将大小从5x1扩展到5x2 resized_image_matrix = resized_image_matrix(:, 1:end-1); % 删除添加的空列 image_10by10 = imresize(resized_image_matrix, [10, 10]); % 将大小调整为10x10 data_images(:,:,k) = mat2gray(image_10by10); end %% 将每个图像保存为一个单独的文件 if ~exist('data_images', 'dir') mkdir('data_images') % 创建新的文件夹用于存储图像 end for k = 1:num_images filename = fullfile('data_images', sprintf('image_%03d.png', k)); imwrite(data_images(:,:,k), filename); end代码中,表格五个输入数据数据标签分别为G、P、T、M、F,输出数据数据标签为Ta,请给出修改后的代码
时间: 2023-12-10 20:37:50 浏览: 102
复制目录下Execl文件sheet1表到新文件vba
根据输入和输出数据的标签进行修改,参考修改后的代码如下:
```matlab
filename = 'low2.xlsx';
sheet = 1;
data = xlsread(filename, sheet);
num_images = size(data, 1);
image_size = [10, 10];
data_images = zeros([image_size, num_images]);
for k = 1:num_images
num_elements = numel(data(k,1:5));
num_rows = ceil(num_elements/image_size(1));
image_matrix = reshape(data(k,1:5), num_rows, [])'; % 转置后再reshape
resized_image_matrix = imresize([image_matrix, zeros(5, 1)], [10, 2]); % 在右边添加空列将大小从5x1扩展到5x2
resized_image_matrix = resized_image_matrix(:, 1:end-1); % 删除添加的空列
Ta_matrix = data(k,6); % 取第六列数据作为输出数据
image_10by10 = imresize(resized_image_matrix, [10, 10]); % 将大小调整为10x10
data_images(:,:,k) = mat2gray(image_10by10);
Ta_images(k) = Ta_matrix; % 存储输出数据
end
%% 将每个图像和对应的输出数据保存为一个单独的文件
if ~exist('data_images', 'dir')
mkdir('data_images') % 创建新的文件夹用于存储图像
end
for k = 1:num_images
filename = fullfile('data_images', sprintf('image_%03d.png', k));
imwrite(data_images(:,:,k), filename);
Ta_filename = fullfile('data_images', sprintf('Ta_%03d.mat', k)); % 保存输出数据为.mat文件
save(Ta_filename, 'Ta_images');
end
```
阅读全文