MATLAB变量不必像 C 语言或 Java 那样先写类型声明。赋值的同时创建变量,类型由右侧内容推断。另一个贯穿始终的事实是:数值变量在内部仍按矩阵(含 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长语句换行
一行过长时,在行末写 ... 续到下一行:
final_velocity = initial_velocity ...
+ acceleration * time;initial_velocity = 0;
acceleration = 9.8;
time = 20;
final_velocity = initial_velocity + acceleration * timefinal_velocity = 196向量与矩阵的初步写法
行内元素用空格或逗号分隔,换行用分号:
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]是几行几列?