MATLAB影像数据处理(一)

安装

参考B站资源和破解方法

https://www.bilibili.com/video/BV1DoAweWENJ/?spm_id_from=333.788.top_right_bar_window_default_collection.content.click

成功安装,可以使用

基本函数

参考教程:https://www.bilibili.com/video/BV1bv411B7wX?spm_id_from=333.788.videopod.episodes&vd_source=b938c9620af06f4224f5fd4db315cbd4

image-20250222163942309

查看帮助

help或者doc加上想要查看帮助的函数

help mkdir
doc mkdir

路径

cd ..

cd …

语法和linux基本操作一致,较为简单

简单尝试

%这是一个测试文件
%清空变量和界面
clc,clear
%print work directory
pwd
%make directory
mkdir 123
%remove directory
rmdir 123
%list
ls
%尝试声明变量
a=1;
b=2;
%copy file and rename
copyfile("test.m","test2.m")
%find function load
which ls

image-20250224142052391

矩阵操作

image-20250224150915166

%产生等差数列,从1开始(默认也为1),每次增加2,最大不超过20
1:2:20

%随机生成0-1之间的数值,5行,3列
a=rand(5,3)

%得到第1行,第2列的数值。
a(1,2)

%第一列的数值
a(:,1)
a(1:end,1)

%第一行的数值
a(1,:)
a(1,1:end)

%MATLAB的运算以列优先,如果想得到一个矩阵的某个值也可只用一个数值得到
%从列开始数,第7个值
a(7)

%只取第1,3列
a(:,[1,3])

%只取,第2,4行,第1,3列的交叉元素
a([2,4],[1,3])

%矩阵的拼接
a = rand(1,10);
b = rand(1,10);
c = [a b]
%整行拼接
c = [a, b]
%按列拼接
c = [a; b]

简单的循环作业

image-20250224154809419

% 获取当前目录
currentDir = pwd;

% 定义ori文件夹路径
oriDir = fullfile(currentDir, 'ori');

% 定义sub文件夹路径
subDir = fullfile(currentDir, 'sub');

% % 创建sub文件夹
% %if ~exist(subDir, 'dir')
% mkdir(subDir);
% end

% 获取ori文件夹中的所有PDF文件
pdfFiles = dir(fullfile(oriDir, '*.pdf'))

% 遍历每个PDF文件
for i = 1:length(pdfFiles)
% 获取PDF文件名
pdfName = pdfFiles(i).name;

% 提取编号(假设文件名格式为 '编号.pdf')
[~, name, ~] = fileparts(pdfName);
folderName = name; % 假设文件名就是编号

% 创建以编号命名的子文件夹
newFolder = fullfile(subDir, folderName);
if ~exist(newFolder, 'dir')
mkdir(newFolder);
end

% 移动并重命名PDF文件
sourceFile = fullfile(oriDir, pdfName);
destinationFile = fullfile(newFolder, 'report.pdf');
movefile(sourceFile, destinationFile);
end

% 删除sub文件夹及其内容
rmdir(subDir, 's');

disp('操作完成');

可以运行!