(不定期更新)Matlab学习杂记

由于MatLab要作为今后科研的辅助软件,并且自己为零基础使用者,所以将学习中需要用到的matlab的知识点,不定期记录下来。学习过程不够系统,仅作为记录。

2017.7.13

1.函数和脚本的区别:

MATLAB中有一种文件叫M文件,他就是一系列代码组成的一个扩展名为.m的文件,虽然M文件是简单的ASCII型的文本文件,但是和其语法和高级语言一样,是一种程序化的编程语言。
M文件可分为脚本文件(MATLAB scripts)和函数文件(MATLAB functions)。脚本文件是包含多条MATLAB命令的文件;函数文件可以包含输入变量,并把结果传送给输出变量,两者的简要区别如下:
脚本文件
a.多条命令的综合体
b.没有输入、输出变量
c.使用MATLAB基本工作空间
d.没有函数声明行
函数文件
a.常用于扩充MATLAB函数库
b.可以包含输入、输出变量
c.运算中生成的所有变量都存放在函数工作空间
d.包含函数声明行
e.有固定的格式要求
Function 输出变量=函数名称(输入变量)
语句;
end;

当函数输入变量为向量输入(多输入)时,输入形式为[x1,x2,x3...]的一元向量形式;输出同理。
总结:

脚本文件可以理解为简单的M文件,脚本文件中的变量都是全局变量。函数文件是在脚本文件的基础之上多添加了一行函数定义行,其代码组织结构和调用方式与对应的脚本文件截然不同。函数文件是以 函数声明行“function...”作为开始的,其实质就是用户往MATLAB函数库里边添加了子函数,函数文件中的变量都是局部变量,除非使用了特别声明。函数运行完毕之后,其定义的变量将从工作区间中清除。而脚本文件只是将一系列相关的代码结合封装,没有输入参数和输出参数,即不自带参数,也不一定要返回结果。而多数函数文件一般都有输入和输出变量,并见有返回结果。
2.多行注释快捷键:
方法一:if 0     要被注释的语句  end           方法二:选中Ctrl+T
3.参考网址:http://www.yiibai.com/matlab/
ps:今日学习了矩阵相关操作以及cat、fopen等函数用法。
(假装此处有华丽丽的分割线,从这之后可能图像处理方面的问题会记录的多一些。突然对light field产生了浓厚的兴趣)

Matlab显示图片错误

问题描述

MATLAB图像显示总是白色

imshow是一个很强大的”武器”,显示图像简直无所不能,但这其中往往会出现问题。在处理图像时,我们的图像经常是经过了某种运算,为了保证其精度,系统会自动的将uint8型数据类型转化成double型。

“如果直接运行imshow(I),我们会发现显示的是一个白色的图像。这是因为imshow()显示图像时对double型是认为在0~1范围内,即大于1时都是显示为白色,而imshow显示uint8型时是0~255范围。而经过运算的范围在0-255之间的double型数据就被不正常得显示为白色图像了。 ”

解决之道

  • 可以利用mat2gray()函数,这个函数是归一化函数,可以把数据归一化到0-1之间,再用imshow()就可以了;
  • 或者对于一个处理后的黑白图像Img,若为double型可以这样写:imshow(Img/max(Img(:)));
  • 还有一种就是:imshow(Img,[]);就是加一个[],即可以自动调整显示;
为科研小白的光场学习指导者打call:
http://www.vincentqin.tech/2017/01/16/Matlab%E7%9B%B8%E5%85%B3%E9%97%AE%E9%A2%98%E6%B1%87%E6%80%BB/#more





你可能感兴趣的:(Matlab)