语法知识
3.18.1多维数组的创建
···直接创建
A(:,:,k)= 矩阵 例:magic(),vander([,]),pascal()…
···随机矩阵
B = rand ( , , )
···矩阵复制
C = repmat ( A , [ , , ] )
···矩阵连接
D = cat ( k , A , B , C )
3.18.2多维数组的运算
1. size( ) (显示行列页)
2. sum( ) (求和)
3. prod( ) (同列各项相乘)
3.18.3猜数游戏
利用二进制数的0和1,双射逻辑符号0和1,第k张表里只有二进制数第k位全为1的数(也就是说 若能在第k张表找到此数,则也输入1)从而由二进制转十进制,算出找到的具体数
(以上~仅为本人语言不是特别严谨的理解)
实例演练
>> A(:,:,1)=magic(3); %魔方矩阵
>> A(:,:,2)=vander([1,2,3]); %范德蒙行列式
>> A(:,:,3)=pascal(3); &帕斯卡行列式(杨辉三角)
>> A
A(:,:,1) =
8 1 6
3 5 7
4 9 2
A(:,:,2) =
1 1 1
4 2 1
9 3 1
A(:,:,3) =
1 1 1
1 2 3
1 3 6
>> B=rand(5,6,2) %随机矩阵五行六列两页
B(:,:,1) =
0.5470 0.1835 0.9294 0.3063 0.6443 0.9390
0.2963 0.3685 0.7757 0.5085 0.3786 0.8759
0.7447 0.6256 0.4868 0.5108 0.8116 0.5502
0.1890 0.7802 0.4359 0.8176 0.5328 0.6225
0.6868 0.0811 0.4468 0.7948 0.3507 0.5870
B(:,:,2) =
0.2077 0.1948 0.3111 0.9797 0.5949 0.1174
0.3012 0.2259 0.9234 0.4389 0.2622 0.2967
0.4709 0.1707 0.4302 0.1111 0.6028 0.3188
0.2305 0.2277 0.1848 0.2581 0.7112 0.4242
0.8443 0.4357 0.9049 0.4087 0.2217 0.5079
>> A=[1 2;3 4]
A =
1 2
3 4
>> C=repmat(A,[3,4,2]) %复制A三行四列两页
C(:,:,1) =
1 2 1 2 1 2 1 2
3 4 3 4 3 4 3 4
1 2 1 2 1 2 1 2
3 4 3 4 3 4 3 4
1 2 1 2 1 2 1 2
3 4 3 4 3 4 3 4
C(:,:,2) =
1 2 1 2 1 2 1 2
3 4 3 4 3 4 3 4
1 2 1 2 1 2 1 2
3 4 3 4 3 4 3 4
1 2 1 2 1 2 1 2
3 4 3 4 3 4 3 4
>> A=magic(3);
>> B=ones(2);
>> C=eye(4);
>> D=cat(3,A,B,C)
错误使用 cat
串联的矩阵的维度不一致。
>> B=ones(3);
>> C=eye(3);
>> D=cat(3,A,B,C)
D(:,:,1) =
8 1 6
3 5 7
4 9 2
D(:,:,2) =
1 1 1
1 1 1
1 1 1
D(:,:,3) =
1 0 0
0 1 0
0 0 1
>> size(A)
ans =
3 3
>> size(D)
ans =
3 3 3
>> A=[1 2 3;4 5 6; 7 8 9];
>> sum(A)
ans =
12 15 18
>> A=[1 2 3;4 5 6; 7 8 9];
>> prod(A)
ans =
28 80 162
总结思考
1.学会了多维数组的创建于可使用的函数:如:repmat,cat,sum,prod…
2.了解了一个简单的二进制01于逻辑符号01双射的基础应用——猜数游戏。