MATLAB 将处理得到的矩阵数据,循环写入.xlsx文件

在matlab处理中,有时候会循环计算和处理数据,每一步都会得到新的结果,我们需要将每一步的结果写入到.xlsx文件中。

例:读取一个文件夹内100张图,分别计算其R、G、B三个通道的平均值,然后将平均值记录下来。

比如:将循环处理的New_RGB值写入到一个新的文件中a.xlsx
在这里插入图片描述
在这里插入图片描述
代码:

% 获取RGB的平均值
clc;
close all;

tic;
% 读取数据
file_path =  '.\10X10\ave_blums\';% 图像文件夹路径  
img_path_list = dir(strcat(file_path,'*.jpg'));
%dir 列出当前文件夹中的文件信息
img_num = length(img_path_list)%获取图像总数量
fprintf('正在读取的图像为:\n');

% 读取准备写入数据的excel

mark = xlsread('.\10X10\ave_blums\待处理数据.xlsx');  %随便读取一个都行

t=1;					%循环写入的标志位
if img_num > 0 %有满足条件的图像
    for j = 1:img_num %逐一读取图像
        img_name = [file_path,int2str(j),'.jpg'];
        pitch=imread(img_name);%多色通道的
        fprintf('第%02d个:%s\n',j,img_name);
        Wid = size(pitch,2);
        Hig = size(pitch,1);
        pixel_num = Wid * Hig;
        R = double(pitch(:,:,1));
        G = double(pitch(:,:,2));
        B = double(pitch(:,:,3));
        
        R_num=0;G_num=0;B_num=0;  %加值初始化
        % 处理数据
        for i = 1:Hig
            for j = 1:Wid
                R_num = R(i,j)+R_num;
                G_num = G(i,j)+G_num;
                B_num = B(i,j)+B_num;
            end
        end
        disp('------------');
        R_num;
        mid_R = ceil(R_num ./ pixel_num);
        G_num;
        mid_G = ceil(G_num ./ pixel_num);
        B_num;
        mid_B = ceil(B_num ./ pixel_num);

        Nuw_RGB = [mid_R mid_G mid_B]
        mark(t,:) = Nuw_RGB;
        t=t+1; 
        
    end
end

xlswrite('.\10X10\ave_blums\写出数据.xlsx',mark); 
toc;

=========================================END ======

  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值