MatLab/Octave 初学笔记(一)

引言

这是一份MatLab/Octave的自学笔记。有误欢迎指正。
matlab功能齐全,编写代码友好,很适合金融机械等非计算机专业的朋友使用。嫌ml臃肿可使用Octave,不过Octave容易崩溃。
这是第一篇,主要写了些基本的数据操作的语法。

内容列表

基础语法:

数字:

%数字
a=2 %赋值
b=3; %分号不打印
a*b %2*3
a^b %同a**b
a**(1/b)    %a开b次方
mod(2,3)    %取余数取模
ceil(1.1) %向上取整
floor(1.9) %向下取整
round(1.5) %四舍五入

字符串:

%字符串
a="ABCD" %字符串
a(1) %matlab是从1开始的!
a(1:2) %c(1)c(2)

数组/一维矩阵:

%数组/一维矩阵
a=[1:4] %生成一个14的整数数组
b=[1:0.2:4]%生成一个14数组,步进0.2
find(b>3) %在b找所有大于3的元素的index
sum(b) %所有元素相加
prod(a) %所有元素的乘积
c=[4 8 7 1]
d=rand(1,4) %生成一维矩阵,4个元素,在01之间平均分布随机数
[val ind]=max(d) %找最大值
a+c %逐位相加


二维矩阵:

%二维矩阵
b=[ 0 1 2 ; 1 1 4 ; 2 -1 0] %初始化矩阵(逗号空格换列,分号换行)
size(b) %矩阵的大小
size(b,1)%矩阵第一个维度的大小
b(1,1)  %矩阵(11)的值,matlab是从1开始的!
b(1,:)  %该二维矩阵第一行的一维矩阵
[b,[11; 12; 13]]    %右边加一列
[b;[11  12 13]]    %下面加一行
b(:)% 降维打击
b' %转置矩阵
pinv(b) %逆矩阵
b+1 %矩阵所有元素加1,大于小于也能用

g=rand(3) % 大小为3x3的[0,1]均匀分布随机数的矩阵,等同rand(3,3)
c=zeros(2,3)   %都是02x3矩阵

d=2*ones(3,3) %都是23x3矩阵
f=eye(3,3) %单位矩阵(3x3)
d*f %矩阵相乘
d.*f %矩阵点乘
[d f]   %d和f左右拼接
[d ;f]   %d和f上下拼接

可视化

%可视化
%直方图
h=randn(1,1001);   %生成有1001个元素的符合标准正态分布的随机数一维矩阵
hist(h,50) ;    %印出直方图,有50个柱子
axis(-5 5 -60 60) %修改坐标系([X_LO X_HI Y_LO Y_HI])

%矩阵填色
j=[1,2,3 4;2,3,4 1;3,4,1,2;4,1,2,3]
imagesc(j),colorbar 

%绘制函数曲线
x=[0:0.1*pi:8*pi]
y1=sin(x)
y2=sin(x)+cos(x)
%一张图上画两个函数
plot(x,y1); 
hold on;    
plot(x,y2);
%在一个页面中分多张图(多个坐标)
subplot(2,2,1); % 页面分成22列,在第一格作画
plot(x,y1); 
subplot(2,2,2); %第二格作画
plot(x,y2);
subplot(2,2,3);
scatter(x,y1); %印出函数散点图

导入文件

%导入文件
cd C:\Users\A\Desktop\  %跟CMD一样的cd命令
load test1.dat   %导入test1.dat文件进内存
save test2.mat a; %导出内存里的a变量进test2.dat
save test3.txt a -ascii ; %导出内存里的a变量进test3.txt 

IF WHILE FOR

%IF FOR WHILE 
for i =1:10 ;
    k(i)=2^i;
    end
k

i=0
while(1) ;
    i=i+1 ;
    if(i>10) ;
        break;
    end;
end;
i

创建函数:

function [y1,y2]=qiugenhao(x)
  y1=x**0.5
  y2=-y1
endfunction
qiugenhao(4)

杂项:

%杂项
%分号;不输出  
%逗号,依次执行
help rand %函数说明文档
clear a;    %删掉a变量,不打变量名就全部删除
whos %查看内存里有的变量
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值