本节说明 MATLAB 中变量的创建方式、默认结果变量 ans、工作区管理命令以及显示格式设置。与 C 语言或 Java 不同,MATLAB 不必在赋值前声明类型:赋值语句同时创建变量,类型与尺寸由右侧表达式决定。数值数据在内部仍以矩阵形式存储(含 1×1 标量、行向量与列向量等形态),这一模型贯穿后续向量与矩阵章节。
赋值即创建
x = 3 % 创建 1×1 的 double
name = 'Ada' % 字符向量
data = [1 2 3] % 行向量对比 C 语言里常见的 int x = 3;、char name[] = "Ada";,这里无需事先写出类型名。同一名字被再次赋值时,可以换成另一种尺寸或类型的数据。
未赋值的结果:ans
一句计算若没有写在等号左边,结果进入默认变量 ans:
sqrt(78)ans = 8.8318sqrt(78);
9876 / ansans = 1118.2ans 会随下一次未命名计算被覆盖。正式脚本里应为中间结果起明确名字,减少对 ans 的依赖。
who、whos、clear
工作区变量变多后,可用下列命令查看或清理:
who % 只列名字
whos % 名字、尺寸、字节、类型
clear x % 删除指定变量
clear % 清空工作区whos 输出类似:
Name Size Bytes Class
x 1x1 8 double
name 1x3 6 char
data 1x3 24 doubledata 显示为 1x3,表示 1 行 3 列。
format:只改显示
默认常用 short 显示约四位小数。用 format 切换显示方式,不改变变量在内存中的存储精度:
format long % 更多小数位
format bank % 两位小数
format short e % 科学计数法
format rat % 有理近似
format short % 回到默认format long
x = 7 + 10/3 + 5 ^ 1.2x = 17.2319816406394长语句换行
一行过长时,在行末写 ... 续到下一行。续行符只是把同一条语句拆开书写,运算仍在全部续行读完之后执行。下列自由落体末速度示例先赋值,再用续行写出求和:
initial_velocity = 0;
acceleration = 9.8;
time = 20;
final_velocity = initial_velocity ...
+ acceleration * time;
disp(final_velocity)输出:
196未使用续行时,同一计算也可写成 final_velocity = initial_velocity + acceleration * time,数值结果相同。续行的意义在于长表达式仍可读,而不是改变运算顺序。
向量与矩阵的初步写法
行内元素用空格或逗号分隔,换行用分号:
r = [7 8 9 10 11] % 行向量
c = [7; 8; 9; 10; 11] % 列向量
m = [1 2 3; 4 5 6] % 2×3 矩阵更完整的索引与运算在向量与矩阵章节展开。此处先记住分隔规则即可。
自查
- 赋值后,
whos里能否看到该变量? - 执行
a = 2; b = 7; c = a*b后,哪些赋值因分号而未在窗口显示? format long会不会改变pi在内存中的值?[1 2 3; 4 5 6]是几行几列?
本节说明了赋值即创建、ans、who / whos / clear、format 与续行符,以及向量矩阵的字面量写法。下一节介绍数据类型:double、整型、逻辑、字符、元胞数组及类型转换与判断函数。