matlab入门(二)——变量命名与数据类型
视频课程:https://www.bilibili.com/video/BV13D4y1Q7RS?p=3&spm_id_from=pageDriver
文章目录
一、快捷键 清空环境变量及命令
clear all
%清除Workspace中的所有变量
clc
%清除Command Window中的所有命令
注释用一个%没有横线,二个%有横线
F9
选中需要执行的部分,点击执行所选内容,或者按住快捷键F9。
二、MATLAB五种数据类型
●数字
●字符与字符串
●矩阵
●元胞数组
●结构体
1.数字
2.字符与字符串
hadow_50,text_Q1NETiBA54mH6KiA6I6r6K-t,size_20,color_FFFFFF,t_70,g_se,x_16)
3.矩阵
- rand、randi和randn的区别:
%% rand,randi,randn之间的区别
% rand:rand生成均匀分布的伪随机数。分布在(0~1) 之间
%randn生成标准正态分布的伪随机数(均值为0,方差为1)
%randi生成均匀分布的伪随机整数
E = zeros(10,5,3) % 10行5列3维
E(:,:,1)=rand(10,5) % 生成m行n列均匀分布的随机数
E(:,:,2)=randn(10,5) % 生成标准的正态分布伪随机数(均值为0,方差为1)
randi(5,1,5) %在区间[0,5]上生成最大值是5的10*5的随机矩阵
randi([2,9], 1,5) %生成在[1,10]生成2*7的随机矩阵
E(:,:,1) =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
E(:,:,2) =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
E(:,:,3) =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
E(:,:,1) =
0.8147 0.1576 0.6557 0.7060 0.4387
0.9058 0.9706 0.0357 0.0318 0.3816
0.1270 0.9572 0.8491 0.2769 0.7655
0.9134 0.4854 0.9340 0.0462 0.7952
0.6324 0.8003 0.6787 0.0971 0.1869
0.0975 0.1419 0.7577 0.8235 0.4898
0.2785 0.4218 0.7431 0.6948 0.4456
0.5469 0.9157 0.3922 0.3171 0.6463
0.9575 0.7922 0.6555 0.9502 0.7094
0.9649 0.9595 0.1712 0.0344 0.7547
E(:,:,2) =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
E(:,:,3) =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
E(:,:,1) =
0.8147 0.1576 0.6557 0.7060 0.4387
0.9058 0.9706 0.0357 0.0318 0.3816
0.1270 0.9572 0.8491 0.2769 0.7655
0.9134 0.4854 0.9340 0.0462 0.7952
0.6324 0.8003 0.6787 0.0971 0.1869
0.0975 0.1419 0.7577 0.8235 0.4898
0.2785 0.4218 0.7431 0.6948 0.4456
0.5469 0.9157 0.3922 0.3171 0.6463
0.9575 0.7922 0.6555 0.9502 0.7094
0.9649 0.9595 0.1712 0.0344 0.7547
E(:,:,2) =
-0.8637 -1.0891 -0.6156 1.4193 -1.1480
0.0774 0.0326 0.7481 0.2916 0.1049
-1.2141 0.5525 -0.1924 0.1978 0.7223
-1.1135 1.1006 0.8886 1.5877 2.5855
-0.0068 1.5442 -0.7648 -0.8045 -0.6669
1.5326 0.0859 -1.4023 0.6966 0.1873
-0.7697 -1.4916 -1.4224 0.8351 -0.0825
0.3714 -0.7423 0.4882 -0.2437 -1.9330
-0.2256 -1.0616 -0.1774 0.2157 -0.4390
1.1174 2.3505 -0.1961 -1.1658 -1.7947
E(:,:,3) =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
ans =
4 2 3 1 4
ans =
4 7 7 7 5
4.元胞数组
- magic
字面意思是魔方,魔术的意思。在matlab中用来生成n阶幻方。比如三阶
幻方就是1-9九个数字,组成一个33的矩阵,使得该矩阵无论横、竖还是斜三个方
向上的三个数的和总是相同的。幻方是一个很古老的问题,你试一下就知道了!
magic(n)生成一个n阶幻方,就是把1-n^2排成一个nxn的矩阵,使得矩阵的每行、
每列,以及主、副对角线.上面的n个数之和都相等(容易证明,这个和等于
n(n^2+1)/2)*
- 元胞数组cell
是MATLAB中特有的一种数据类型,是数组的一种,其内部元素可以是属
于不同的数据类型,概念理解上,可以认为它和c语言里面的结构体、C++里面的
对象很类似。元胞数组是matlab中的特色数据类型,它不同于其它数据类型(如
字符型,字符数组或者叫字符串,以及一般的算术数据和数组)。它特有的存取数
据方法决定了它的特点,它有给人一种查询信息的感觉,可以逐渐追踪一直到所有
的变量全部翻译成基本的数据信息。它的class函数输出就是cell (细胞之意)。
A = cell(1,6) %1行6列,像一个盒子一样
A{2} = eye(3) %3*3对角线矩阵放在第2个盒子里面,从1开始
A{5} = magic(5) %n阶幻方。比如三阶幻方就是1-9九个数字,组成一个3*3的矩阵,使得该矩阵无论横、竖还是斜三个方向上的三个数的和总是相同的。17+24+1+8+15=65 17+23+4+10+11=65
B = A{5}*
运行结果:
> A =
[] [] [] [] [] []
A =
[] [3x3 double] [] [] [] []
A =
[] [3x3 double] [] [] [5x5 double] []
B =
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
5.结构体
%% 5. 结构体 类似于python中的字典
books = struct('name',{{'Data Ming','Machine Learning'}},'price',[30,40]) %name相当于键,后面的相当于值
books.name
books.name(1) %小括号取出来的是cell
books.name{1} %中括号取出来的是字符串
运行结果:
books =
name: {'Data Ming' 'Machine Learning'}
price: [30 40]
ans =
'Data Ming' 'Machine Learning'
ans =
'Data Ming'
ans =
Data Ming