matlab 第i行到j行,Matlab笔记1

Matlab的英文全名即Matrix Laboratory(矩阵实验室)

rand/randn/randi

rand生成均匀分布的伪随机数,分布在(0~1)之间,rand(m,n)生成m行n列的均匀分布的伪随机数

【single 单精度浮点数 4个字节  double 双精度浮点数 8个字节,占内存长度不同single类型取值范围为1.5×10 -45 到zhi3.4×10 38 ,有7位小数,最大精度是小数点dao后约六位。  double类型取值范围为5×10 -324 到1.7×10 308 ,有15到16位小数,精度是小数点后14位。       】

rand(m,n,'double')生成指定精度的均匀分布的伪随机数,参数还可以是'single'  rand(RandStream,m,n)利用指定的RandStream(随机种子)生成伪随机数

randn是均值为0方差为1的标准正态分布;(同rand)

rand(n)或randn(n)生成n*n的随机数矩阵。

rand(n,m)或randn(m,n)生成m*n的随机数矩阵。

randi 生成均匀分布的伪随机整数

randi(iMax)在开区间(0,iMax)生成均匀分布的伪随机整数

randi(iMax,m,n)在开区间(0,iMax)生成mXn型随机矩阵

r = randi([iMin,iMax],m,n)在开区间(iMin,iMax)生成mXn型随机矩阵

x=randperm(3)%对1~3的整数取一随机组合(3个数)

x(n)取数组中第n个数   x([m n])取数组中第m,n列  x(m:n)取数组中第m到第n列 x(start:length:end)

A(i,j)矩阵A中第i行第j列l  A(i:j,m:n)表示由矩阵A 的第 i 到第j 行和第m到第n列交叉线上的元素组成的子矩阵

72d4e135b1aa

l 可利用冒号提取矩阵的整行或整列,提取行列中间以逗号分隔

72d4e135b1aa

72d4e135b1aa

删除指定的行或列

必存在一个“:”号,即无法同时删除行列

72d4e135b1aa

—————————————————————————————————————————

1、Integer:integer,整数 / 整型数,是编程语言的基本数据类型之一,用以指示变量的数据类型,有时也用于常量(变量、表达式)的强制数据类型转换。整型数据的长度及其取值范围并不固定,受编译环境影响。

2、Single:Single(单精度浮点型),以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。

1、Integer:integer存储为 16位(2 个字节)的数值形式。

2、Single:single存储为 IEEE 32 位(4 个字节)浮点数值的形式。

——————————————————————————————————————————Matlab中变量多为矩阵

矩阵和数组

1)数组使用方括号声明,数组元素使用空格或者逗号分隔开。这样的数组又叫做行矢量。

72d4e135b1aa

2)要创建矩阵,使用分号分隔的多行数据。

72d4e135b1aa

m = [1,2,3; 4,5,6; 7,8,9]

3)如果要转置矩阵,使用单引号。

72d4e135b1aa

4)创建初始值为0、1、均匀随机、正态分布随机的矩阵,它们的参数分别是行和列的个数。

72d4e135b1aa

创建矩阵

eye(m,n)生成一个主对角线全为 1 的 m 行 n 列矩阵,m=n 时可简写为 eye(n),即 n 维单位矩阵

72d4e135b1aa

5)m,n均为三阶矩阵。两个某一维度相同的矩阵可以串联,逗号分隔为水平串联,分号分隔为垂直串联。下面[m,n]结果是3X6的矩阵,而[m;n]是6X3的矩阵。

6)矩阵与一个数运算,结果会应用到矩阵所有元素上。如果矩阵和矩阵运算,结果遵循矩阵计算法则。如果希望将两个矩阵对应元素进行计算,需要使用.运算符的语法。

72d4e135b1aa

索引运算

有时候可能需要对数组或矩阵中某些值进行计算,这时候可以利用索引运算进行。如果尝试访问矩阵中不存在的元素,会导致错误。不过如果是对不存在的元素赋值,Matlab会自动扩展矩阵,新创建的元素都为0.

如果需要访问多行或多列,使用冒号运算符。

冒号运算符还可以用于创建等距离矢量,语法是[起始:步长:结束],其中步长可以省略,默认是1。

72d4e135b1aa

矩阵计算

矩阵求和,默认情况下对于矩阵执行sum函数会得到各列的和。(以行展示)

如果希望得到各行的和,需要在sum函数上指定第二个参数。(以列展示)

如果要获取对角线的和,可以使用diag函数先得到对角线矢量。

如果要得到反对角线,Matlab没有提供直接方法。不过我们可以利用fliplr函数先对矩阵进行左右翻转,然后再求对角线。

72d4e135b1aa

各列的和

72d4e135b1aa

各行的和

72d4e135b1aa

对角线的和

72d4e135b1aa

反对角线的和

有一种特殊的矩阵叫做幻方,这种矩阵各行、各列、以及两条对角线的和都是相同的。Matlab内置了函数magic,可以生成指定维度的幻方。

m = magic(3)%三阶幻方

72d4e135b1aa

常用关于矩阵的数学函数

det(A)  %  行列式

inv(A)  %  求逆

eig(A)  %  特征值

rank(A) %  求矩阵的秩

72d4e135b1aa

查看矩阵的大小:size

72d4e135b1aa

72d4e135b1aa

图像-矩阵

基本图像类型-图像就是矩阵,矩阵就是图像

我们常见的图象类型主要二值图像、灰度图像和RGB图像。

1、二值图像

二值图像是仅用0和1来表示一幅图像,0代表黑,1代表白。

A=ones(1280,760);imshow(A)

A=zeros(1280,760);imshow(A)

A=zeros(1000);

A(200:800,200:800)=1;

imshow(A)

2、灰度图像

灰度图像是用0到255之间的256个整数来表示一幅的图像,0代表黑,255代表白,将黑与白均匀的细分成256份,每一个值代表一种色。

A=255*ones(1280,760);imshow(A)

A=zeros(1280,760);imshow(A)

A=imread('rice.png');

imshow(A)

3、RGB图象

RGB图像是分别用红、绿、蓝三个亮度值为一组,代表每个像素的颜色,是一个有三个矩阵合在一起的块矩阵,块矩阵的每一页是一个灰度图。

f=imread('tu1.bmp');

subplot(2,3,2), imshow(f)

subplot(2,3,4), imshow(f(:,:,1))

subplot(2,3,5), imshow(f(:,:,2))

subplot(2,3,6),imshow(f(:,:,3))

--基本命令、

读取和显示图像:

I=imread(‘D:\Applications\MATLAB7\work\1.jpg’)

imshow(I)

clear; close all

I=imread('rice.png');

imshow(I)

RGB图像转换为灰度图像:

I=rgb2gray(RGB)

输入参数:RGB是分析的真彩色图像;

输出参数:I返回灰度图。

RGB图像的每一层就是一个灰度图像,可直接

用彩色图像的某一层来作为彩色图像对应的灰度图像.

RGB或灰度图像转换为二值图像:

BW=im2bw (I,level)

输入参数:RGB或I是彩色或灰度图像;

level是阈值,取值在[0,1]之间 。

输出参数:BW为返回的二值图像对应的矩阵。

将灰色图像转换为二值图像:

im2bw(I,level)

level=graythresh(I3);   %图像灰度处理

bw=im2bw(I3,level);     %图像二值化处理

figure,imshow(bw)       %显示处理后的图片

whos

—————————————————————————————————————————

MATLAB中运bai行who与whos的区别为:顺序排列du不同zhi、语法不同、用途不同。

一、顺序排列不同

1、who:who给出dao的列表只能按变量名的字母顺序排列。

2、whos:whos给出的列表可以按变量名的字母顺序排列,也可以按尺寸、所占字节数等顺序排列。

二、语法不同

1、who:who的语法为s = who (variable_list)。

2、whos:whos的语法为s = who(variable_list)和s = who(variable_list, qualifiers)。

三、用途不同

1、who:who用于列出当前工作空间中所有变量名。

2、whos:whos用于列出当前工作空间中所有变量,以及它们的名字、尺寸(比如一个矩阵或数组的行列维数)、所占字节数、属性等信息。

文本和字符

字符串用单引号包括,如果字符串内部也有单引号,则内部使用两个连续的单引号。

72d4e135b1aa

如果要查看变量类型的话,可以使用whos命令。

72d4e135b1aa

连接字符串使用方括号将要连接的字符串括在一起。

72d4e135b1aa

字符和数字之间也可以互相转换。

72d4e135b1aa

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值