python矩阵左除_Matlab语法随笔(暂停更新)
本⽂档中⼤多数内容都可以通过type(显⽰⽂件内容)和help(显⽰函数帮助)来理解
下⾯部分的功能和函数说明适⽤于深度学习⽅⾯的知识。
基础
1、基本符号:
clc清空历史窗⼝中的内容,但是变量值不会变
clear变量全部清空
不等于符号:~=
异或运算符:xor(a,b) 例:xor(1,0) 则ans=1
其他符号参考c++,基本⼀致。
输⼊PS1('>> ');回车:前⾯提⽰符变成>>
disp(a)显⽰变量值
disp(sprintf('2 decimals :%0.2f',a))输出,并且冒号后跟上a的值,a保留两位⼩数。写法和c差不多。
disp(['the value of a:',a])字符串后跟上变量
exit quit可以退出主程序。
close可以关闭绘图窗⼝
addpath('c:\Desktop')将路径添加到窗⼝中。这样即便你到了其他路径也能使⽤该路径下的⽂件和⽅法。
addpath(genpath('C:\ProgramSoftware\MatLab\DeepLearnToolbox-master'))将根路径
为'C:\ProgramSoftware\MatLab\DeepLearnToolbox-master'⽬录下的所有⼦⽂件夹都加⼊到路径下
...(英⽂格式下输⼊。) 续⾏符,代码⽐较长⼀⾏写不下可以使⽤续⾏符进⾏续⾏。但是使⽤续⾏符时前⾯要加上空格,不然⽆效。assert(er < 0.10, 'Too big error');assert函数,如果er>=0.10就输出错误信息。
2、基本类型
%matlab中默认的数值类型为双精度浮点型,⼀般通过整型函数将浮点型数据转换成整型数据。
%不同的整形数据所占的内存是不同的。
int8() int16() int32() int64() %存储字节数(1 2 4 8)不同,正向正⽆穷⼤取整,负向负⽆穷⼤取整
uint8() uint16() uint32() uint64() %存储字节数(1 2 4 8)不同,向0取整
3、矩阵写法
>>A = [1 2; 3 4; 5 6]
A=
1 2
3 4
5 6
>>A=[1 2;
>3 4;
1 2
3 4
5 6
%以上>符号都是控制台⾃带前缀,不⽤⼿打
>>A(3,2) %访问矩阵A的第三⾏第⼆列
ans=
python生成1到100之间随机数6
>>A(3,:) %冒号表⽰所有元素,即提取A矩阵第三⾏的所有元素
>>A([1 3],:) %获取1、3⾏的所有元素
>>A=[A,[1;3;4]] %右侧加上新的⼀列
>>A(:) %将A中的所有元素加⼊到⼀个列向量⾥
>>C=[A B] %在右侧连接(此写法同C=[A,B])
>>C=[A ;B] %在下⽅连接
>>v=1:0.1:2 %步长为0.1,包含1和2的1x11矩阵,这⾥为了篇幅不过长不显⽰出来结果。
>>v=1:6 %从1到6包含1和6的6个整数的矩阵。
>>ones(2,3)
ans=
1 1 1
1 1 1
%同理还有zeros(a,b)函数⽣成全为0的矩阵、rand(a,b)⽣成全为0~1之间随机数的矩阵、
%randn(a,b)⽣成服从⾼斯分布(均值为0,标准差或⽅差为1)的随机数矩阵,等等,⽣成随机数下⾯会提到。>>eye(4) %⽣成单位矩阵
ans =
Diagonal Matrix
1 0 0 0
1 1 0 0
1 0 1 0
1 0 0 1
>>size(A) %显⽰矩阵A的⼤⼩
ans= %ans是⼀个1x2的矩阵
3 2
>>size(A,1) %返回A矩阵第⼀维度⼤⼩
>>length(A) %返回矩阵A较长维度。如果是向量就返回向量长度
ans=
3
hist(w) %将w绘制成⼀个直⽅图
hist(w,50) %将w绘制成⼀个有50个竖条的直⽅图
>>q([i2 i1]) %输出q向量下标为i2和i1的变量。
>>qnew([i1 i2])=q([i2 i1]) %向量i1下标和i2下标变量位置互换
4、访问⽂件数据
⼤部分命令和linux环境下的命令很像。具体如下:
>>pwd %查看当前路径
>>cd 'C:\Users\administrator\Desktop' %跳到某路径下
>>ls %查看当前路径下的⽂件
>>load a.dat %加载当前⽬录下的a.dat⽂件数据
>>load('a.dat') %效果同上
>>who %查看当前内存中存储的变量
>>whos %显⽰当前内存中变量,并且显⽰⼤⼩、数据类型等详细数据
>>clear x %从内存中删除x变量
>>v=x(1:10) %x变量内的前10个元素赋值给v
>>save hello.mat v %将变量v存储到hello.dat⽂件内
>> v -ascii %存储为ASCII编码格式的txt⽂件
5、⽣成随机数
rand(1) %随机⽣成0~1之间的⼀个随机数字
rand(m,n) %⽣成m⾏n列均匀分布的伪随机数,分布在(0,1)之间
rand(m,n,'double') %⽣成指定精度的伪随机数参数还可以是single
rand('state',0) %保持每次随机都是同样的状态(⽤于读者运⾏能获得和笔者⼀样的效果)
randn %⽣成标准正态分布的伪随机数均值0⽅差1,语法和上⼀样
randi %⽣成均匀分布的伪随机整数
randi(a) %在开区间(0,a)⽣成均匀分布的整数伪随机整数
randi(a,m,n) %在开区间(0,a)之间⽣成mxn矩阵
randi([a,b],m,n) %在开区间(a,b)⽣成mxn矩阵
unidrnd(n) %产⽣⼀组从1~n的离散均匀随机整数
%其中n可以是⼀个向量、矩阵、[多维数组](当然也可以是⼀个数,即1乘以1的矩阵),但n中所有元素都必须是正整数。(0不⾏,会NaN)
%这种调⽤⽅式将产⽣⼀个和n具有相同尺⼨(⾏、列、维数)的矩阵
R = unidrnd(N,v)
%这种调⽤格式中v是⼀个⾏向量,如果v是⼀个1乘以2的向量, 则v中的两个元素分别指定了⽣成的矩阵R的⾏数(由v(1)指定)和列数(由v(2)指定)。如果v是⼀个1乘以n的矩阵, 则R是⼀个n维数组。
R = unidrnd(N,m,n)
%这⾥m和n分别指定⽣成的矩阵R的⾏数和列数。
randperm:
>>p=randperm(n) %返回⼀⾏从1~n的整数。⾏向量。
>>p = randperm(n,k) %从1-n的数字序列⾥⾯随机返回k个数(k个数互相之间不⼀样)
>>new = old( randperm( size(old,1) ) , : ) %数组中各⾏被重排列的例⼦
randsample:
>>y = randsample(n,k) %产⽣k个1~n的数(列向量)
>>y = randsample(population,k) %从数组⾥随机取出k个不相同的数
>> y = randsample(n,k,replacement) %replacement是⼀个bool函数1可能重复,0可能不重复
>> y = randsample(population,k,replacement)
>> y = randsample(n,k,true,w)
>> y = randsample(population,k,true,w)
>> y = randsample(s,...)
6、关键字
format
format short %默认格式,⼩数点后保留4位
format long %有效数字16位
format long e %有效数字16位加3位指数
format short e %有效数字5位加3位指数
format bank %保留两位⼩数位
format + %只给出正负
format rational %以分数的形式表⽰
format hex %以16进制数表⽰
format long g %15位有效数
format short g %5位有效数
format compact %去掉命令⾏中的多余的空⾏
format loose %恢复上⼀步操作之前的状态
7、数据导⼊
>>a=rand(5,10)
>>xlswrite('data5.xls',a,'Sheet1','B2')
%把矩阵a写到excel⽂件data5.xls⽂件中的表单Sheet1 B2列开始的域中
>>b=xlsread('data5.xls','Sheet2','C3:F6')
%把Exp1中⽣成的Excel⽂件data5.xls中表单Sheet1的域“C3:F6”中的数据赋给b
>>load test
%加载test.mat⽂件中的内容到test变量内。
8、字符串连接
>>SC=[str1,str2] %⽅法1
>>strcat(str,str1) %⽅法2
>>strcat({‘Red’,’Yellow’},{‘Green’,’Blue’})
ans =
‘RedGreen’ ‘YellowBlue’
>>strcat([‘Red’,’Yellow’],[‘Green’,’Blue’])
ans =
RedYellowGreenBlue
>>STR=sprintf(‘%s%d’,str1,number) %⽅法3
9、字符串截取
>>i1=strfind(temp,',') %从temp字符串中获得值为','的下标,赋值给i1
%这⾥注意 ,如果temp中有多个',',i1将会是⼀个下标向量。
>>i2=temp(1:6) %将temp字符串中的下标为1~6之间的值取出来给i2
函数
1、repmat函数
基本语法:
B = repmat(A,m,n)
B = repmat(A,[m n])
B = repmat(A,[m ])
处理内容有重复的⼤矩阵的时候使⽤这个函数。⽐如:如果A矩阵是⼀个1x2x3的矩阵,那么B=repmat(A,2,3)后的矩阵B就是2x6x3同时重复的也不仅仅是矩阵,也能是字符串,甚⾄是NaN:
B=repmat([1 2;3 4],2,3)
B=
1 2 1 2 1 2
3 4 3 4 3 4
1 2 1 2 1 2
3 4 3 4 3 4
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论