GNU Octave 官方文档

GNU Octave Documentation(Online)
GNU Octave Documentation(PDF)

安装额外的包

Installing and Removing Packages
Octave Forge

% 卸载包
pkg uninstall io statistics % 从 Octave Forge 仓库直接安装包
pkg install -forge io statistics % 从本地文件安装包
pkg install io.2.4.12.tar.gz statistics.1.4.1.tar.gz % 从url安装包
pkg install 'http://somewebsite.org/statistics-1.4.1.tar.gz' % 检查 Octave Forge 仓库更新所有过期的包,更新单个包使用 install 命令
pkg update % 加载包
pkg load statistics % 列出当前安装的包
pkg list % 给出包的简短描述
pkg describe -verbose statistics
Package Name  | Version | Installation directory
--------------+---------+-----------------------
io *| 2.4.12 | /Users/guoli/octave/io-2.4.12
statistics *| 1.4.1 | /Users/guoli/octave/statistics-1.4.2

命令行常用设置

Customizing the Prompt

% 设置命令行提示符,可以将该命令添加到~/.octaverc文件中
PS('>> ') % 显示当前环境所有变量
whos

三元操作 (ternary operation)

如果 n > 1 则返回 1,如果 n <= 1 则返回 0。此方法可用于绘制分段函数。

(n > 1) * 1

因为逻辑比较会被转换为 1 或 0,可以将逻辑比较乘以希望的输出,结果就是 0 或期望输出。

范围表达式

Ranges

% 范围表达式生成一个行向量(row vector)
1 : 2 : 5 % 1 3 5
1 : -.3 : 0 % 1 0.7 0.4 0.1
1 : 5 % 1 2 3 4 5

索引表达式

Index Expressions

a = 1 : 5;
a(1) % 1
a(end) % 5
a(2:end) % 2 3 4 5
a([2, end]) % 2 5
a(:) % change to the column-vector % append new element to vector
a[end+1] = 6; % works for both row- and column-vectors
a = [a 6]; % works for row-vectors
a = [a; 6]; % works for column-vectors % delete a element
a(end) = []; # append new element to matrix
A = eye(2); % 2x2 identity matrix
A[end+1, :] = 3; % get 3x2 matrix
A[end+1, :] = [4 5]; % get 4x2 matrix
A = [A; [6 7]]; % get 5x2 matrix A = eye(2); % 2x2 identity matrix
A[:, end+1] = 3; % get 2x3 matrix
A[:, end+1] = [4; 5]; % get 2x4 matrix
A = [A [6; 7]]; % get 2x5 matrix

交换矩阵中的两行或两列

E = eye(5);
E([3 5], :) = E([5 3], :) % 交换第3行和第5行
E(:, [4 5]) = E(:, [5 4]) % 交换第4列和第5列

生成随机数

% 生成一个随机数在1-10之间的2x3x4矩阵
randi(10, 2, 3, 4); % 生成一个随机数在3-9之间的3x3方阵
randi([3,9], 3);

将向量 v 中的任意整数值转换成 one-hot 向量

v = 1:10;
E = eye(10);
E(:, v(3));

函数句柄和匿名函数

Function Handles
Anonymous Functions

命令与函数语法(MATLAB)

大专栏  Octave 常用命令x.html">Command vs. Function Syntax

绘图

Plot Annotations
Printing and Saving Plots
Axis Configuration

demo plot;
demo ('subplot', 1);
demo surf;

数据准备

x = linspace(-3,3,10);
y = linspace(-3,3,10); % the rows of metrices X are copies of vector x,
% and the columns of metrices Y are copies of vector y.
[X Y] = meshgrid(x, y); % below will always assert true
y' * x == X .* Y; % function of sombrero
f = @(X,Y) sin(sqrt(X.^2+Y.^2))./(sqrt(X.^2+Y.^2))
Z = f(X, Y);

2D绘图

% produce 2-D plot
plot(x, y, 'k+', 'LineWidth', 2, 'MarkerSize', 7);

散点图

% draw a 3-D scatter plot
scatter3(X, Y, Z, 'filled');

等高线图

% create 2-D contour plot
contour(Z, 'ShowText', 'on');
colorbar; % create 3-D contour plot
contour3(Z, 'ShowText', 'on');

3D网格图

% plot a 3-D wireframe mesh.
figure 1;
clf;
mesh(Z);

3D surface 图

% plot a 3-D surface mesh.
figure 1;
clf;
surf(Z);
shading interp;
colorbar; % plot a function with lots of local maxima and minima.
surf(peaks);
peaks; % same as above

数轴设置

% axis configuration
axis;
axis([-3 3 -1 1], "square"); % "square", "equal", "normal"
axis("auto"); % "auto", "manual", "tight", "image", "vis3d"
xlim;
xlim([-3 3]);
xlim("auto"); % set axis location
set(gca, 'xaxislocation', 'origin'); % {'bottom'}, 'origin', 'top'
set(gca, 'yaxislocation', 'origin'); % {'left'}, 'origin', 'right'
set(gca, 'box', 'off'); % plot annotations
title('surface of peaks');
xlabel('x axis');
ylabel('y axis');
zlabel('z axis');
legend('peaks');

保存图形

% save picture to the file
print peaks.png

3D正态分布函数

x = y = linspace (-5, 5);
[X Y] = meshgrid(x, y);
f = @(X, Y, mu, sigma) exp (-((X - mu(1)).^2 + (Y - mu(2)).^2) ./ (2 * sigma^2));
Z = f(X, Y, [0 0], 1);
surf(X, Y, Z);

分段函数

x = linspace (-3, 3);
f1 = @(x) (-x + 1).*(x < 1) + (x - 1).*(x >= 1);
f2 = @(x) (x - 1).*(x > -1);
subplot(121);
axis square;
plot(x, f1(x), 'LineWidth', 2);
subplot(122);
axis square;
plot(x, f2(x), 'LineWidth', 2);

矩阵运算

3维矩阵转置

矩阵操作

Z = reshape(1:24, 2, 3, 4);

permute(Z, [1,3,2]) % 将第2维与第3维进行转置
permute(Z, [3,2,1]) % 将第1维与第3维进行转置

线性代数

简化(行)阶梯形矩阵 (Reduced Row Echelon Form)

A = magic(3);
rref(A)

Octave 常用命令的更多相关文章

  1. MATLAB/OCTAVE常用命令 cheat sheet

    MATLAB cheatsheet http://web.mit.edu/18.06/www/Spring09/matlab-cheatsheet.pdf 清除变量 clear 清屏 clc //cl ...

  2. Linux 常用命令(持续补充)

    常用命令: command &:将进程放在后台执行 ctrl + z:暂停当前进程 并放入后台 jobs:查看当前后台任务 bg( %id):将任务转为后台执行 fg( %id):将任务调回前 ...

  3. LVM基本介绍与常用命令

    一.LVM介绍LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制LVM - 优点:LVM通常用于装备大量磁盘的系统,但它同样适 ...

  4. Linux学习笔记(一):常用命令

    经过统计Linux中能够识别的命令超过3000种,当然常用的命令就远远没有这么多了,按照我的习惯,我把已经学过的Linux常用命令做了以下几个方面的分割: 1.文件处理命令 2.文件搜索命令 3.帮助 ...

  5. git常用命令(持续更新中)

    git常用命令(持续更新中) 本地仓库操作git int                                 初始化本地仓库git add .                       ...

  6. 【原】npm 常用命令详解

    今年上半年在学习gulp的使用,对npm的掌握是必不可少的,经常到npm官网查询文档让我感到不爽,还不如整理了一些常用的命令到自己博客上,于是根据自己的理解简单翻译过来,终于有点输出,想学习npm这块 ...

  7. npm常用命令

    npm常用命令 环境:win7 npm 是什么 NPM(node package manager),通常称为node包管理器.顾名思义,它的主要功能就是管理node包,包括:安装.卸载.更新.查看.搜 ...

  8. Git 常用命令

    一.初始環境配置 git config --global user.name "John Doe"git config --global user.email johndoe@ex ...

  9. linux iptables常用命令之配置生产环境iptables及优化

    在了解iptables的详细原理之前,我们先来看下如何使用iptables,以终为始,有可能会让你对iptables了解更深 所以接下来我们以配置一个生产环境下的iptables为例来讲讲它的常用命令 ...

随机推荐

  1. 吴裕雄--天生自然 JAVASCRIPT开发学习:数据类型

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  2. 用ps画一个Gif的小房子(1)

    效果如图: 制作方法: 1.新建200*200的画布:复制一块小房子图片 2.点击窗口-时间轴-勾选帧动画 3.如图所示(我这边是一帧对应一个图层) 4.新建图层-这边要新建24个图层,每个图层对应不 ...

  3. oracle (6)---SQL 数据关联查询

    SQL 数据关联查询 Structure Query Language 从多(n)张表查询对应记录信息,必须有至少n-1个关联条件,否则会出现笛卡尔积的情况.1. 等值连接:没有连接关系的数据不会被查 ...

  4. jQuery 1.3.2 简单实现select二级联动

    jQuery 1.3.2 简单实现select二级联动  复制代码代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transiti ...

  5. Linux 文件上传

    Linux 文件上传操作 SecureCRT与linux互相上传和下载文件 1. 需要上传或者下载,需要使用rz和sz命令. 2. 如果linux上没有这两个命令工具,则需要先安装.可以使用yum安装 ...

  6. Java线程——线程之间的通信

    Java中多线程间的通信是怎么实现的? 线程通信的方式: (1)共享变量 线程之间的通信可以通过发送信号,发送信号的一个简单方法就是再共享的对象里面设置信号值.线程A在一个同步块中设置boolean型 ...

  7. Okhttp 多次调用同一个方法出现错误java.net.SocketException: Socket closed

    Okhttp 多次调用同一个方法出现错误java.net.SocketException: Socket closed https://blog.csdn.net/QQiqq1314/article/ ...

  8. 20个GitHub最热门的Java开源项目:文档、框架、工具

    专注于Java领域优质技术,欢迎关注 文章来源:JavaGuide 以下涉及到的数据统计,数据来源:https://github.com/trending/java?since=monthly[1] ...

  9. idea启动服务连接mysql后 Navicat连接mysql就报错2013-Lost connection toMySQL server at

    我是使用navicat的windows端 连接centos下mysql服务器 第一次常规连接mysql正常,idea启动服务连接mysql后 Navicat连接mysql就报错2013-Lost co ...

  10. Python笔记_第四篇_高阶编程_正则表达式_3.正则表达式深入

    1. re.split 正则的字符串切割 str1 = "Thomas is a good man" print(re.split(r" +",str1)) # ...