前置安装

octave

introduction

clear; close all; clc刷新清空octave

如果写程序后缀名.m

help commandname帮助

;用法同c++

%注释

不再命令行而是直接编代码时,每句结尾; (在命令行用的话可以避免输出不必要的信息)

~=不等于

次方是^不是**

异或是xor(a,b)

e, pi, i都有定义

sin, cos, tan, log, exp, abs, floor, ceil

log是\(e\)为底

printf, sprintf用法大致同c++, 不过sprintf最开头的目标变量参数去掉了变成返回值了

disp(x)显示值

没有//,且/默认可以是小数

pause等待输入

...放行末,将语句分几行写

变量

who显示当前已有变量, whos还能额外显示每个变量的size,bytes,数据类型

clear xxx删除变量

矩阵

定义:

A=[1,2,3;1,2,3;1,2,3]分号换行

访问:

A(1, 2)第一行第二列(可修改)

A(1, :)第一行整行 (类似numpy)

A(:, 2)整个第二列

vec(3:end)获得向量第三个元素到最后一个元素

一些构造函数:

1:5等价于[1, 2, 3, 4, 5]

1:2:5等于1 3 5(中间那个是步长)

zeros(n,m)nm的全零矩阵

ones(n,m) n
m的全一矩阵

A=eye(n)n*n单位矩阵

rand(n,m), randn(n,m)随机矩阵,rand是0到1随机小数,randn按均值为0方差为1的正态分布

A=zeros(size(B))构造相同大小的矩阵

可以A=[]开个不定大小的的矩阵,然后用[A, [1, 2]]这种来进而确定大小

也可用A(:,id)=[]删掉矩阵某一列

一些矩阵运算:

取逆inv(A) (如果sigular,那么pinv可以求伪逆)

转置A'

A.*B矩阵对应位乘

A.^B对应位的变为a^b

还有2.^AA.^2, exp(A), log(A), max(A, 2), A>2等也是每个位操作将运算结果换上去

其他函数

A=[A;B]把列数相同的矩阵B插入到A矩阵下面

A=[A,B]把行数相同的矩阵B插入到A矩阵右边

length(A)获得向量长度

size(A)返回二元组(几行,几列)(size(A, 1/2)分别是获取二元组的第1第2个值)

max(A): 当\(A\)为行/列向量时,求最大值。 而当\(A\)为矩阵时,会默认得到一个对应每列最大值的行向量。

当对向量操作时,[val, ind] = max(A)可以额外获得下标

max(A,[],1或2)则不管你是否向量,1是求每列最大值的行向量, 2是求每行最大值的列向量

sum(A, 1或2)1是每列和摆成行向量,2是每行和摆成列向量

要求整个矩阵最大值或整个矩阵的和的话max(max(A)), sum(sum(A))

prod乘法同理

对向量find(A>3)找出满足条件的下标,对矩阵[r,c]=find(A>3)找到满足条件的下标

mean求平均数

std求标准差

A(:)是一种矩阵转向量的问题,可用于简化上述求整个矩阵的和,乘积,最大值

绘图

x=[-2:0.01:2]; %定义域(取点频率是每0.01一个)
y=x.^2; %函数
plot(x, y); %绘出图像(是将相邻的点用直线连起来的)
print -dpng "foo.png"; %dpng djpg ... 将最近一次plot保存为文件,会保存到源文件所在目录(命令行弄了一下不行?)

xlable("name"),ylabel("name")设置坐标轴变量名称

axis([xa,xb, ya, yb])设置坐标系显示范围(注意这并不回改变你函数的定义域,只是类似于你换了个观察角度而已)

title("name")图标上方名称

legend("name1", "name2")按照图上曲线创建顺序标上图示(右上角显示红线时name1,蓝线是name2这种)

cloes关闭当前figure

默认创建的临时窗口写着Figure 1。 可用figure(number)来控制打开叫什么名字的临时窗口,以便同时作画多张图片

subplot(n,m,idx)是把当前figure平均分成\(n*m\)的网格状后,从上往下一行一行从左往右数的第idx个网格处放置一个网格大小的坐标系占位置

然后之后的画图就会画在那里,直到你切换subplot

切换subplot不会覆盖原来在那的坐标系,也不会重置hold off

用不同划分方式的subplot往空白的地方放可以使一个figure上有不同大小的坐标系

但如果不同划分方式的subplot与之前放过的subplot有重合,就会把之前的那个铲掉

hold on函数使新函数不覆盖旧函数 hold off取消.

hold on作用区域是局部的, 具体是作用于subplot(一个figure看作1*1的subplot)

当你没有打开figure时,回帮你开个figure1并帮你设置它为hold on。

这样写在最靠外不代表什么全局设置之类的,你figure(2)这样2是没有hold on的

当你的subplot被新建时,默认时hold off的(从刚打开的空白一片连坐标系都没有的figure中开subplot也是如此)

当figure关闭后再打开,相当于新建subplot,默认hold off

作图实虚线,颜色,空心圆等符号,参考

hist(A)将向量A中的数字统计出现次数并绘成直方图一个数值的柱的右边界是那个数值,而不是柱子中间对着数值。所以显得比较奇怪

hist(A,w)后面那个参数越大,柱就越细

矩阵转灰度图imagesc(A), colorbar, colormap grey

与外界联动

load('filename')里面的东西得是像矩阵这种合法的格式

如果这样写load("a.txt")默认会去掉后缀把文件名作为新的变量名存起来,这可能会覆盖掉a原有的变量值

可以这样b=load("a.txt")指定存储位置,不会覆盖a

save file variable可以将某个变量存进去

save file则是把所有变量存进去

以后可以load file这时载入的变量名与原来保存时相同

注意这里不要用b=load("a.txt"),否则首先b存多个变量不知道怎么访问,其次这样子b是只读的

条件语句,循环

for i = 1:10,while i<10没有冒号

注意上面那句话本质就是for i = vector

最后要用end;收尾

if , else不用冒号

elseif中间没有空格

最后要用end;收尾

function

function f()无返回值不用写返回值,无参数参入可以不写括号

function res = f(arg-list) 单返回值型 (相当于res是函数里的临时变量)

function [res1, res2] = f(arg-list) 并不是真的返回list

不能写成A=f(...)这样A只能得到res1,必须写成[a, b] = f(...)

end

可以另写文件,一个.m文件存一个函数,如果文件名不等于函数名,则函数名会变成文件名,但这样会warning

也就是说建议文件名和函数名一样吧。

这样使用函数需要cd到.m文件的目录,或者打addpath("directory")

关于矩阵乘法的思考

向量对应乘求和的两种方式:\(u'*v\)与\(sum(u.*v)\)

单组数据是 A列向量 时,多组数据就一列一列排起来,结果也对应是按原来结果的格式一列一列排起来

但组数据时 行向量
A 时,多组数据就一行一行拍起来,结果也对应是按原来结果的格式一行一行排起来

octave学习的更多相关文章

  1. Coursera在线学习---第二节.Octave学习

    1)两个矩阵相乘 A*B 2)两个矩阵元素位相乘(A.B矩阵中对应位置的元素相乘) A.*B 3)矩阵A的元素进行平方 A.^2 4)向量或矩阵中的元素求倒数 1./V    或   1./A 5) ...

  2. Machine Learning – 第2周(Linear Regression with Multiple Variables、Octave/Matlab Tutorial)

    Machine Learning – Coursera Octave for Microsoft Windows GNU Octave官网 GNU Octave帮助文档 (有900页的pdf版本) O ...

  3. Window下设置Octave

    从 http://sourceforge.net/projects/octave/files/Octave_Windows%20-%20MinGW/Octave%203.6.0%20for%20Win ...

  4. 【Machine Learning 学习笔记】OSX Octave 输出图像问题

    Uninstall any existing gnuplot on your OSX brew uninstall gnuplot Install gnuplot with either X or X ...

  5. Linux学习内容

    Linux学习要点(转载自红联) 一.学习Linux的基本要求1. 掌握至少50个以上的常用命令. 2. 熟悉Gnome/KDE等X-windows桌面环境操作 . 3. 掌握.tgz..rpm等软件 ...

  6. Andrew N.G的机器学习公开课学习笔记(一):机器学习的动机与应用

    机器学习由对于人工智能的研究而来,是一个综合性和应用性学科,可以用来解决计算机视觉/生物学/机器人和日常语言等各个领域的问题,机器学习的目的是让计算机具有像人类的学习能力,这样做是因为我们发现,计算机 ...

  7. GitHub 上 57 款最流行的开源深度学习项目

    转载:https://www.oschina.net/news/79500/57-most-popular-deep-learning-project-at-github GitHub 上 57 款最 ...

  8. Linux的学习路线图

    一.学习Linux的基本要求1. 掌握至少50个以上的常用命令. 2. 熟悉Gnome/KDE等X-windows桌面环境操作 . 3. 掌握.tgz..rpm等软件包的常用安装方法 4. 学习添加外 ...

  9. Stanford机器学习---第五讲. 神经网络的学习 Neural Networks learning

    原文 http://blog.csdn.net/abcjennifer/article/details/7758797 本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归 ...

随机推荐

  1. 牛客NOIP提高组R1 A中位数(二分)

    题意 题目链接 Sol 很神仙的题目啊,考场上只会$n^2$的暴力.. 考虑直接二分一个$mid$,我们来判断最终答案是否可能大于$x$. 判断的时候记录一下前缀最小值即可, 设$s[i]$表示$1- ...

  2. C++构造函数实例——拷贝构造,赋值

    #define _CRT_SECURE_NO_WARNINGS //windows系统 #include <iostream> #include <cstdlib> #incl ...

  3. windows7下将Cygwin加入右键菜单,并从当前目录打开

    第一步:修改windows注册表 1·开始->运行(或者win键+R),输入REGEDIT,回车,打开注册表编辑器: 2·找到HKEY_CLASSES_ROOT\Directory\Backgr ...

  4. hihocoder#1098 : 最小生成树二·Kruscal算法

    #1098 : 最小生成树二·Kruscal算法 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 随着小Hi拥有城市数目的增加,在之间所使用的Prim算法已经无法继续使用 ...

  5. 【ansible】使用ansible安装nginx

    一.主机准备 ServerIP:10.10.10.102 ClientIP:  10.10.10.103,10.10.10.104 二.安装ansible yum -y install ansible ...

  6. PHP的抽象类、接口的区别和选择

    1.对接口的使用是通过关键字implements.对抽象类的使用是通过关键字extends.当然接口也可以通过关键字extends继承. 2.接口中不可以声明成员变量(包括类静态变量),但是可以声明类 ...

  7. Firewall Rule Properties Page: Advanced Tab

    Applies To: Windows 7, Windows Server 2008 R2 Use this tab to configure the profiles and interface t ...

  8. [转载]用等高线图(Contour maps)可视化多变量函数

    https://blog.csdn.net/xlinsist/article/details/50920479 Overview 由于我们用手来画三维图像很困难,我们可以用等高线图来描述图像会更加简单 ...

  9. [oldboy-django][2深入django]班级管理(Form)--编辑

    1.需求:编辑班级,难点:点击编辑按钮后,页面如何显示 待编辑 班级的信息(用Form实现), 以及Url 设置 2 url url(r'^edit_class/nid=(?P<nid>\ ...

  10. Solr 配置连接数据库

    前面我们将solr安装并创建了core同时也配置可IK分词器,接下来我们通过配置连接Mysql数据库并把数据导入到solr(使用ik分词器). 1.配置managed-schema文件 Request ...