MATLAB编程基础——数组的构造

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MATLAB编程基础——数组的构造
matlab如何查阅某个函数的用法?
如查询randperm函数的用法,可以使用help randperm 或者doc randperm >> A=[1 2 3 ; 4 5 6 ;7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> B=A
B =
1 2 3
4 5 6
7 8 9
数组乘运算,即点乘运算,注意“*”前有个“.”运算符
>> C_S=A.*B
C_S =
1 4 9
16 25 36
49 64 81
矩阵乘运算,注意“*”前没有“.”运算符
>> C_J=A*B
C_J =
30 36 42
66 81 96
102 126 150
isvarname函数用于判断变量名定义是否正确
例如:
>> isvarname 8th
ans =
>> isvarname th
ans =
1
MATLAB预定义的变量:
ans 预设计算结果的变量名
eps MATLAB定义的正的极小值=2.2204e-16
pi 内建的π值
inf ∞值,无限大(1/0)
NaN 无法定义的一个数目0/0
i 或j 虚数单位i=j=根号负1
intmax
intmin
realmax
realmin
computer
version
2.2 数组的构造
2.2.1 直接输入
1、逐个元素输入法
x=[1 2 3;4 5 6]
说明:
创建数组时,用“[”和“]”为其首尾
数组行之间必须用分号“;”或按Enter键隔离
数组元素必须由逗号“,”或空格分隔
2、冒号输入法
x=a:inc:b
inc 为步长省略时默认为1 a 为起始值终值<=b
例如:
>> x=1:0.3:2
x =
1.0000 1.3000 1.6000 1.9000
2.2.2 通过函数产生
1、采样法
采样法主要用于一维数组的产生包括两个函数:linspace (线性采样法) 和
logspace(对数采样法)
y=linspace(a,b,n)
其中a b 分别为数组的第一个和最后一个元素,n为采样点总数,当n默认时,n=100.
例如:
>> linspace(1,5,3)
ans =
1 3 5
y=logspace(a,b,n)
y=logspace(a,pi)
生成一维数组的第一个元素值为10的a次方,最后一个元素值为10的b次方,n 是采样总点数,n的默认值为50 。

当b=pi时,此采样点数组常用于数字信号处理频率响应。

>> logspace(1,2,5)
ans =
10.0000 17.7828 31.6228 56.2341 100.0000
>> logspace(1,pi)
ans =
Columns 1 through 16
10.0000 9.7665 9.5384 9.3157 9.0981 8.8856
8.6781 8.4755 8.2776 8.0843 7.8955 7.7111 7.5310 7.3551 7.1834 7.0156
Columns 17 through 32
6.8518 6.6918 6.5355 6.3829 6.2338 6.0883
5.9461 5.8072 5.6716 5.5392 5.4098 5.2835 5.1601 5.0396 4.9219 4.8070
Columns 33 through 48
4.6947 4.5851 4.4780 4.3734 4.2713 4.1715
4.0741 3.9790 3.8861 3.7953 3.7067 3.6201 3.5356 3.4530 3.3724 3.2936
Columns 49 through 50
3.2167 3.1416
2、标准函数生成数组
ones 产生全1数组
zeros 产生全0数组
diag 产生对角型数组
eye 产生单位数组
magic 产生魔方数组
rand 产生均匀分布随机数组
randn 产生正态分布随机数组
randperm 产生随机排列数组
pascal 产生Pascal数组
invhilb 逆hilbert数组
accumarray 积聚数组
hilb hilbert数组
>> ones(2,3)
ans =
1 1 1
1 1 1
说明:ones(a,b)产生数值为1的a*b大小数组
>> zeros(2,3)
ans =
0 0 0
0 0 0
>> A=[12 62 93 -8 22]
A =
12 62 93 -8 22
>> diag(A,-1)
ans =
0 0 0 0 0 0
12 0 0 0 0 0
0 62 0 0 0 0
0 0 93 0 0 0
0 0 0 -8 0 0
0 0 0 0 22 0
>> diag(A,-2)
ans =
0 0 0 0 0 0 0
0 0 0 0 0 0 0
12 0 0 0 0 0 0
0 62 0 0 0 0 0
0 0 93 0 0 0 0
0 0 0 -8 0 0 0
0 0 0 0 22 0 0
说明:
diag(v,k)返回n+abs(k)列的正方形数组,其中n为向量v长度。

根据向量v创建一个对角数组,元素放在对角线上,由k决定向上或向下偏移的程度。

>> eye(2,3)
ans =
1 0 0
0 1 0
>> eye(3,3)
ans =
1 0 0
0 1 0
0 0 1
>> magic(3)
ans =
8 1 6
3 5 7
4 9 2
>> magic(4)
ans =
16 2 3 13
5 11 10 8
9 7 6 12
4 14 1
5 1
>> magic(5)
ans =
17 24 1 8 15
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
说明:matlab调用语句为magic(n)。

n为魔方阵阶数
每行的和都相等,每列的和也相等
行的和,列的和,对角线的和也都等于同一个常数
比如一个三阶的魔方阵
6 1 8
7 5 3
2 9 4
每行和都为15,每列和都为15,对角线和也为15。

>> rand(2,3)
ans =
0.6154 0.9218 0.1763
0.7919 0.7382 0.4057
>> randn(2,3)
ans =
-1.1878 0.9863 0.3274
-2.2023 -0.5186 0.2341
>> randperm(10)
ans =
8 5 9 10 6 3 7 4 2 1
说明:randperm(n)返回1:n随机排列的数组
>> pascal(5,1)
ans =
1 0 0 0 0
1 -1 0 0 0
1 -
2 1 0 0
1 -3 3 -1 0
1 -4 6 -4 1
>> pascal(5,2)
ans =
1 1 1 1 1
-4 -3 -2 -1 0
6 3 1 0 0
-4 -1 0 0 0
>> pascal(5,0)
ans =
1 1 1 1 1
1 2 3 4 5
1 3 6 10 15
1 4 10 20 35
1 5 15 35 70
说明:Pascal 函数的第二个参数必须是0,1,或2 ,默认情况为0
2.2.3 通过文件产生
1、直接把数据作为数组输入到M文件中
2、作为变量保存到mat文件中,使用时,可以直接导入到MATLAB工作间中。

相关文档
最新文档