问题描述
在GEE下的MODIS数据是每个doy为一张遥感影像的数据集,一年共46张影像,在同一文件夹中
在使用时,想将同一年的46个doy的数据读到同一三维数组中
一维为影像的行
二维为影像的列
三维为影像的doy
自己写了个简单的函数my_imread,可以直接调用
函数代码
function [matrix] = my_imread(inputfile)
file = ls(inputfile);
cd(inputfile);
filename = cellstr(file);
filename(1:2) = [];
num = length(filename);
for i = 1:num
file_char = filename{i};
eval(['a', num2str(i), '=', 'imread(file_char)', ';']);
if i == 1
matrix = a1;
else
eval(['matrix', '=', 'cat(3,matrix,','a',num2str(i),')', ';']);
end
end
实例调用
两个.m文件放在同一文件夹,调用的时候要把两个一起打开
调用的代码,自己改文件路径哟~
clc;
clear all;
tic
%你要读的文件夹路径
image_file = 'D:\filter\interdata\2020inter';
%调用函数my_imread
image = my_imread(image_file);
toc
运行结果:
注意事项
1.函数是按照文件命名的排序读取的,我一般会按doy的顺序命名文件夹中的影像,如下图
2.第一次读取的文件夹可能会报错,再点运行,将该文件夹添加到路径中就可以了