前言
这个是学习台大郭彥甫教授的MATLAB课链接,说真的感觉就是简单易懂,在国内上课和看视频很少看到这么好的教程,很多细节都讲的很清楚,其实当我们在学习的时候,很多时候就是这样的一些细节不懂。同时,这个笔记也是很随便记录一下,没有很详细就当复习一下。
一、初级基本操作
...
可以用于换行,如果某一行代码太长,在末尾加上...
再回车即可,如果没有加回车会报错。ctrl+c
用于终止程序运行。close all
用于关闭所有绘画。clear all
清空所有变量。clc
清空命令窗口。- 如果是cell变量,A(1,1)结果是该位置的数据类型,A{1,1}是数据结果。
cat()
函数用于拼接矩阵和向量,cat(1,A,B)表示列拼接,cat(2,A,B)表示行拼接。reshape()
函数用于改变形状,reshape(A,r1,c1),r1是改变后的行,c1是改变后的列,但是改变前后必须保证r1 * c1=r2 * c2
- 文件的保存和读取
save mydata.mat -ascii;
load(\'mydata.mat\',\'-ascii\');
10.读取Excel文件
a = xlsread(\'path\') %读取的时候会自动去除文字部分。
a = xlsread(\'path\',\'B2:D4\') %有选择的读取文件。
xlswrite(\'path\',M,1,\'E2:E4\') %M表示变量,1代表写入sheet1,后面就是写入Excel的位置。
xlswrite(\'path\',{Mean},1.\'E1\'); %把标头写入进去
这里在读写文件的时候要学会合理使用转置。
11.使用fopen()读写文件
1. 读取
%fid相当于每一行的一个指针,每一次就往下走,第一行,第二行,感觉有点想Python中的自动调用next()
fid = fopen(\'path\',\'r/w\');
i = 1;
while ~feof(fid):
a(i) = fscanf(fid,\'%5c\',1); %读取档案,1表示读取的数量是读取这一行中的一列。
b(i) = fscanf(fid,\'%d\',1);
...
i = i + 1;
fclose(fid);
2. 写入
x = 0:pi/10:pi;
y = sin(x);
fid = fopen(\'sinx.txt\',\'w\');
for i = 1:11:
fprintf(fid,\'%5.3f\',\'%8.4f\n\',x(i),y(i));
end
fclose(fid);
二、绘图
1.plot()
+ plot(x,y)
+ plot(y)默认x=[1,2....,n] n = length(y)
+ plot(x,y,\'str\')str表示Line的格式,可以去LineSpec查。
plot(x,y,\'db-\',x,h,\'gp-\',....);
2.hold on/off
用于保证绘图不会覆盖
hold on;
plot(x1,y1);
plot(x2,y2);
hold off;
3.Legend()
图标,就是一副图中出现多条线,用于区分,一般分布在右上角
plot(x,y,\'db-\',x,h,\'gp-\',....);
Legend(\'sinx\',\'cos(x)\',....);
4.title()
title(\'XXX\');
xlabel(\'t = 0 to 2/pi\');
ylabel(\'xxx\');
5.text()
str = 公式;
text(0.25,2.5,str,\'Interpreter\',\'Latex\');
6.Figure Adjustment
对于MATLAB中绘图,应该有个印象,就是它是由每个物件组成的Figure object、Axes object、Line object
%gca axes
%gcf figure
get();
%范围变化
set(gca,\'XLim\',\'[0,2*pi]\');
set(gca,\'YLim\',\'[-1.2,1.2]\');
%外框字体大小
set(gca,\'FontSize\',25);
7.画很多图的时候
figure plot(x1,y1);
figure plot(x2,y2);
subplot(2,3,1);plot(x,y);axis normal
subplot(2,3,2);plot(x,y);axis square
....
subplot(2,3,6);plot(x,y);
分块的区域
|1|2|3|
-------
|4|5|6|
8.saveas()
保存图片
saveas(gcf,\'filename\',\'format\');
format:\'png\'/\'tiff\'/\'pdf\'
三、图像处理
图像存在的几种形式:
- Binary二进制0,1
- Grayscale灰阶0(black)-255(white),pixel像元
- True color 即RGB
1.图片读取
I = imread(\'pout.tif\');
imshow(I); %显示
imageinfo(\'pout.tif\') %显示图片信息
imtool(\'pout.tif\') %可显示像素点的数值
2.图像处理的相关函数
K = imadd(k,j); %k图像和j图像相加
imhist(I); %抓出graylevel 显示一个图像中每个像素点数值出现的频数。
immultiply(I,1.5); %使得Matrix中的每个像素值变为1.5倍。差异跟明显。
I2 = histeq(I); 均衡化,使得素值均匀的分布在各个数值。
imwrite(I, \'pout.png\');
% graythresh()找出在灰阶图像中的阈值
% im2bw()使其转化为二阶图像
I = imread(\'rice.png\');
level = graythresh(I);
bw = im2bw(I,level);
% imopen()得到背景图像
I = imread(\'rice.png\');
BG = imopen(I,strel(\'disk\',15));
imshow(BG);
I2 = imsubtract(I,BG); %把I图像减去BG图像;