Matlab第六次打卡

Task06 多维数组

语法知识

1.多维数组的创建
1.1直接赋值
1.2通过矩阵函数生成

注:
矩阵的复制:repmat(A,[ ]),A为要复制的矩阵;
矩阵的连接:D=cat(dim,A,B,C);dim为维数;

2.多维数组的运算

在这里插入图片描述

实例演练

多维数组的创建
在这里插入图片描述

>> A(:,:,1)=magic(3)                  %魔方矩阵

A =

     8     1     6
     3     5     7
     4     9     2

>> A(:,:,2)=vander([1 2 3])          %范德蒙矩阵

A(:,:,1) =

     8     1     6
     3     5     7
     4     9     2


A(:,:,2) =

     1     1     1
     4     2     1
     9     3     1

>> A(:,:,3)=pascal(3)

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(4,4,3)

B(:,:,1) =

    0.8147    0.6324    0.9575    0.9572
    0.9058    0.0975    0.9649    0.4854
    0.1270    0.2785    0.1576    0.8003
    0.9134    0.5469    0.9706    0.1419


B(:,:,2) =

    0.4218    0.6557    0.6787    0.6555
    0.9157    0.0357    0.7577    0.1712
    0.7922    0.8491    0.7431    0.7060
    0.9595    0.9340    0.3922    0.0318


B(:,:,3) =

    0.2769    0.6948    0.4387    0.1869
    0.0462    0.3171    0.3816    0.4898
    0.0971    0.9502    0.7655    0.4456
    0.8235    0.0344    0.7952    0.6463

矩阵的复制
在这里插入图片描述

>> A=[1 2;3 4]

A =

     1     2
     3     4
>> C=repmat(A,[3 4 3])      %将矩阵A复制成3*4,然后再复制3页

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


C(:,:,3) =

     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)

A =

     8     1     6
     3     5     7
     4     9     2

>> B=ones(3)

B =

     1     1     1
     1     1     1
     1     1     1
>> C=eye(3)

C =

     1     0     0
     0     1     0
     0     0     1

>> 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

多维数组的运算

>> B(:,:,1)=magic(3);
>> B(:,:,2)=ones(3);
>> B(:,:,3)=eye(3);
>> size(B)

ans =

     3     3     3
>> sum(B)               %数组求和

ans(:,:,1) =

    15    15    15


ans(:,:,2) =

     3     3     3


ans(:,:,3) =

     1     1     1

>> prod(B)                %数组求乘积

ans(:,:,1) =

    96    45    84


ans(:,:,2) =

     1     1     1


ans(:,:,3) =

     0     0     0

猜数游戏:7张数据表(默想数字在1~127之间,如果想扩大猜数范围,要增加表数)。若某个表中有默想的数据,则输入向量中相应的因素为1,否则为0。

编辑器
%This program for guess a number,which is less then inter of 127
clear
i1=1:2:127;
A(:,:,1)=reshape(i1,8,8);%设计第1张表,表中数字转换成二进制数的个位均为1,reshape为矩阵重排列函数
i2=1:2:63;
A2=[2*i2;2*i2+1];
A(:,:,2)=reshape(A2,8,8); %设计第2张表,二进制数的第二位均为1
i4=1:2:31;
A3=[4*i4;4*i4+1;4*i4+2;4*i4+3];
A(:,:,3)=reshape(A3,8,8);
i8=1:2:15;
A(:,:,4)=[8*i8;8*i8+1;8*i8+2;8*i8+3;8*i8+4;8*i8+5;8*i8+6;8*i8+7];
A5=[16:31,48:63,80:95,112:127]';
A(:,:,5)=reshape(A5,8,8);
A6=[32:63,96:127]';
A(:,:,6)=reshape(A6,8,8);
A7=[64:127]';
A(:,:,7)=reshape(A7,8,8);  %设计地7张表,二进制的第7位均为1
A                          %显示1~7张表
V=input('please input a vector as [0,0,1,0,1,1,0],which matrix has your number set 1 else set 0\n');
S=sum(V(1)+2*V(2)+4*V(3)+8*V(4)+16*V(5)+32*V(6)+64*V(7));
fprintf('your number is %d\n',S)     %输出猜想数
命令窗口
>> guessnum

A(:,:,1) =

     1    17    33    49    65    81    97   113
     3    19    35    51    67    83    99   115
     5    21    37    53    69    85   101   117
     7    23    39    55    71    87   103   119
     9    25    41    57    73    89   105   121
    11    27    43    59    75    91   107   123
    13    29    45    61    77    93   109   125
    15    31    47    63    79    95   111   127


A(:,:,2) =

     2    18    34    50    66    82    98   114
     3    19    35    51    67    83    99   115
     6    22    38    54    70    86   102   118
     7    23    39    55    71    87   103   119
    10    26    42    58    74    90   106   122
    11    27    43    59    75    91   107   123
    14    30    46    62    78    94   110   126
    15    31    47    63    79    95   111   127


A(:,:,3) =

     4    20    36    52    68    84   100   116
     5    21    37    53    69    85   101   117
     6    22    38    54    70    86   102   118
     7    23    39    55    71    87   103   119
    12    28    44    60    76    92   108   124
    13    29    45    61    77    93   109   125
    14    30    46    62    78    94   110   126
    15    31    47    63    79    95   111   127


A(:,:,4) =

     8    24    40    56    72    88   104   120
     9    25    41    57    73    89   105   121
    10    26    42    58    74    90   106   122
    11    27    43    59    75    91   107   123
    12    28    44    60    76    92   108   124
    13    29    45    61    77    93   109   125
    14    30    46    62    78    94   110   126
    15    31    47    63    79    95   111   127


A(:,:,5) =

    16    24    48    56    80    88   112   120
    17    25    49    57    81    89   113   121
    18    26    50    58    82    90   114   122
    19    27    51    59    83    91   115   123
    20    28    52    60    84    92   116   124
    21    29    53    61    85    93   117   125
    22    30    54    62    86    94   118   126
    23    31    55    63    87    95   119   127


A(:,:,6) =

    32    40    48    56    96   104   112   120
    33    41    49    57    97   105   113   121
    34    42    50    58    98   106   114   122
    35    43    51    59    99   107   115   123
    36    44    52    60   100   108   116   124
    37    45    53    61   101   109   117   125
    38    46    54    62   102   110   118   126
    39    47    55    63   103   111   119   127


A(:,:,7) =

    64    72    80    88    96   104   112   120
    65    73    81    89    97   105   113   121
    66    74    82    90    98   106   114   122
    67    75    83    91    99   107   115   123
    68    76    84    92   100   108   116   124
    69    77    85    93   101   109   117   125
    70    78    86    94   102   110   118   126
    71    79    87    95   103   111   119   127

please input a vector as [0,0,1,0,1,1,0],which matrix has your number set 1 else set 0
[1 0 0 0 0 0 0]
your number is 1

总结思考

1.学习到数组中涉及一些函数;
2.对于矩阵和数组的综合运用很不熟练,在猜数游戏上考虑了很久猜得到结果,需要之后加强练习;
3.没有做出最后的滑块游戏,之后要写一下其中涉及的程序。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值