• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

MATLAB学习笔记(1)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

前言

这个是学习台大郭彥甫教授的MATLAB课链接,说真的感觉就是简单易懂,在国内上课和看视频很少看到这么好的教程,很多细节都讲的很清楚,其实当我们在学习的时候,很多时候就是这样的一些细节不懂。同时,这个笔记也是很随便记录一下,没有很详细就当复习一下。

一、初级基本操作

  1. ...可以用于换行,如果某一行代码太长,在末尾加上...再回车即可,如果没有加回车会报错。
  2. ctrl+c用于终止程序运行。
  3. close all用于关闭所有绘画。
  4. clear all清空所有变量。
  5. clc清空命令窗口。
  6. 如果是cell变量,A(1,1)结果是该位置的数据类型,A{1,1}是数据结果。
  7. cat()函数用于拼接矩阵和向量,cat(1,A,B)表示列拼接,cat(2,A,B)表示行拼接。
  8. reshape()函数用于改变形状,reshape(A,r1,c1),r1是改变后的行,c1是改变后的列,但是改变前后必须保证r1 * c1=r2 * c2
  9. 文件的保存和读取
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图像;

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Rust程序设计语言(7)发布时间:2022-07-18
下一篇:
2.Rust的三板斧安全,迅速,并发发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap