x=logspace(a,b,n);
结果起始于10^a,终止于10^b,共n项。即相当于区间[a,b]包括双端点在内均匀取n个点分别求以10为底数的幂。
>> x1=1:3;...
x2=linspace(5,20,4);...
x=[x1,x2];
>> x1
x1 =
1 2 3
>> x2
x2 =
5 10 15 20
>> x
x =
1 2 3 5 10 15 20
>> y1=(1:3)';...
y2=linspace(5,20,4)';...
y=[y1;y2];
>> y1
y1 =
1
2
3
>> y2
y2 =
5
10
15
20
>> y
y =
1
2
3
5
10
15
20
ones(n)/ones(m,n);
zeros(n)/zeros(m,n);
rand();
eye(n); %单位阵
randn(); %均值0、方差1的标准正态分布随机矩阵
A(:,j) 提取第j列为矩阵
A(i,:) 提取第i行为矩阵
A(i,j) 第i行第j列元素
A(i:i+m,:) 提取第i~i+m行所有元素为矩阵
A(:,j:j+n)
A(i:i+m,j:j+n)
对以上及其他若干方法不再赘述,统一用一个例程展示如下:
>> A=zeros(3,4) %创建3×4零阵
A =
0 0 0 0
0 0 0 0
0 0 0 0
>> A(:)=1:12 %单独的冒号,全元素寻访,改变整个矩阵。注意是按列赋值
A =
1 4 7 10
2 5 8 11
3 6 9 12
>> A(8) %按列寻访第八个
ans =
8
>> A(:,[1 3]) %全部行,第1、3两列
ans =
1 7
2 8
3 9
>> A([1 2 5 6]') %第1/2/5/6个元素提取,组成列向量
ans =
1
2
5
6
>> A(:,4:end)
ans =
10
11
12
>> A(2,1:2:5)=[-1 -3 -5] %对应元素批量更改
A =
1 4 7 10 0
-1 5 -3 11 -5
3 6 9 12 0
>> A([1 3],[1 3]) %提取1/3行1/3列构成的子阵
ans =
1 7
3 9
>>
笔者注:
以上几个提取子阵的表达式,实质上是在元素两个下标位置上写成两个行向量,从而提取出对应行、对应列所有交叉处的元素为子阵,单独的冒号也是冒号法,由于没有限定范围从而提取出了所有元素而已。
因此,我们可以先赋值两个行向量,然后再在需要的矩阵中提取子阵。只不过这个方法有点麻烦不实用。
4×4矩阵A,如果命令A(:,3:4)=[]则变为4×2矩阵,如果直接A=[]则工作区显示A为空矩阵,并未删除;clear A工作区不再有A。