GNU Octave 基础教程(2):第一个 Octave 程序

目录

[1. 方式一:命令行直接打印](#1. 方式一:命令行直接打印)

[2. 方式二 :编写 .m 脚本文件](#2. 方式二 :编写 .m 脚本文件)

[3. 稍微升级一下:自定义函数](#3. 稍微升级一下:自定义函数)

[4. 比较 disp vs. printf](#4. 比较 disp vs. printf)

[5. 总结](#5. 总结)


今天我们来写 Octave 的第一个程序,"Hello World!"。"Hello, World!" 是编程语言学习中的传统第一个程序。它的任务很简单:在屏幕上打印出这行文字。这个程序虽然简单,却代表着你正式踏入了编程世界。我们分别用命令行工具 (CLI)和 Octave script 文件 (.m 文件) 来实现。在编写程序之前我们需要安装 GNU Octave,具体请参照上一篇教程: GNU Octave 基础教程(1):在 Ubuntu 22.04 和 Windows 11 上的安装指南-CSDN博客

1. 方式一:命令行直接打印

在 Octave 命令行中输入以下内容并回车:

或者我们可以使用格式更灵活的 printf:

这里的 '\n' 代表回车换行符。怎么样?是不是感觉很简单。关于 disp() 与 printf() 函数的区别,我们会在后面会介绍。

2. 方式二 :编写 .m 脚本文件

GNU Octave 也允许我们编写脚本文件。同 Matlab 一样,脚本文件是以 .m 结尾的文本文件,包含一段可重复运行的代码。我们先查看一下 GNU Octave 当前的工作路径:

我们在 "C:\Users" 目录下创建一下 hello.m 文件,输入以下内容:

复制代码
% hello.m
% 第一个 Octave 脚本程序

disp('Hello, World!')

保存文件后,在 Octave 命令行中运行:

注意 % 之后为注释,运行脚本的时候并不会被执行。脚本文件的好处是,我们可以保存、修改、反复运行,也方便日后组织更复杂的程序。

3. 稍微升级一下:自定义函数

我们来更进一步,可以用函数方式写一个"智能问候"程序。在 "C:\Users" 目录下新建文件 greet.m

复制代码
function greet(name)
  % greet - A simple greeting function
  %
  % Usage:
  %   greet("Alice")
  %
  % Inputs:
  %   name - a string containing the name to greet
  printf("Hello, %s! Welcome to GNU Octave!\n", name);
end

这里我们用 function 关键字定义了一个名为 greet 的函数。这个函数有一个参数,名称为 name。这个函数执行一个 printf() 命令,函数的结尾处用关键字 end 标注。printf() 函数中的 %s 表示"将这里替换为一个字符串变量", 也就是 name。 在 Octave 命令行下运行 greet 函数,输出:

这里我们可以根据需要,更改不同函数变量('Alice'),输出不同的名字。我们会在今后的内容中介绍 GNU Octave 函数的使用。

4. 比较 disp vs. printf

本讲涉及到了 Octave 的两个内置函数, disp() 和 printf() 函数。它们是有所不同的,如下表:

函数 用途 示例
disp() 简单打印,不支持格式化 disp('你好')
printf() 支持格式控制 printf('x = %.2f\n', 3.14)

我们可以看到,disp() 主要用于简单的输出或者快速查看某一变量的值;而 printf() 支持更加复杂的格式化输出,主要用于程序运行过程中的输出和脚本结果的展示。

5. 总结

我们经完成了你的第一个 GNU Octave 程序,并简单的介绍了 GNU Octave 的脚本文件以及函数定义方法,是不是很简单。这只是个开始!欢迎点赞 + 收藏 + 关注本专栏,持续更新,带你 用免费工具完成科研级别的任务

相关推荐
loosed6 小时前
Ubuntu mysql8 tar.xz 安装
linux·ubuntu·adb
Wang's Blog7 小时前
RabbitMQ: 消息发送、连接管理、消息封装与三种工程方案
linux·ubuntu·rabbitmq
broad-sky11 小时前
Ubuntu上查看USB相机连接的是哪个口,如何查看
linux·数码相机·ubuntu
轩轩Aminent14 小时前
WSL 中的 Ubuntu 系统中使用 Docker
ubuntu·docker·eureka
RedMery14 小时前
Ubuntu切换wayland和x11
linux·运维·ubuntu
uoscn14 小时前
Ubuntu24.04无操作卡死,无法唤醒问题以及内核版本切换记录
linux·ubuntu
yousuotu15 小时前
基于 Python 实现亚马逊销售数据分析
数据挖掘·数据分析
Tiger Z15 小时前
《R for Data Science (2e)》免费中文翻译 (第15章) --- Regular expression(1)
数据分析·r语言·数据科学·免费书籍
镜舟科技15 小时前
活动回顾 | 镜舟科技出席鲲鹏开发者创享日・北京站
starrocks·数据分析·开源·数字化转型·华为鲲鹏·lakehouse·镜舟科技
小张帅三代16 小时前
华为昇腾服务器ubuntu安装Anaconda步骤
运维·服务器·ubuntu