MATLAB核心技巧:从入门到精通

1. 数值显示格式

格式设置
示例:pi format longE;

or

2.清除指令

  • clc:清除命令行窗口
  • clear:清除工作区变量
  • cls:清除屏幕(部分环境适用)

3.搜索路径设置

  • 添加路径:path(path, 'E:\ads\')
  • 或使用:addpath

path(path,'E:\ads\')

or

addpath

4.M文件

用户将需要执行的命令写入以 .m 为扩展名的文件中,由 MATLAB 系统解析并运行。

类型:

  • 脚本文件:可包含自定义函数或命令
  • 函数文件:函数名必须与文件名一致

5.通用描述

  • 函数示例:rand()sin(60)
  • 工具箱函数:abssqrtexp
  • 查看帮助:help abs
  • 分号(;):抑制命令行输出

6.通用命令

  • 常用指令clcclfclearexitquithomeechotypemorecddirloaddiarypackhold(图形保持)
  • 关闭窗口close
  • 快捷键:支持快捷操作

  • 向量与矩阵标识符[]

1.向量

  • 冒号运算符
    用于生成等差序列向量,语法为 a1:step:an

  • linspace函数
    生成指定区间内的等分向量,格式为 linspace(a1,an,n),其中 n 默认为100

  • logspace函数
    生成对数间隔向量,格式为 logspace(a1,an,n),其中 n 默认为50

  • 算术运算
    支持常规算术运算,包括点积(dot)和叉积(cross

冒号表示

linspace(a1,an,n) n默认100 ,首元素尾元素 等分间距

logspace(a1,an,n) n默认50

算数运算

点积和叉积

2.矩阵matrix

特殊矩阵

  • 特殊矩阵生成函数
    • ones(3,3) 或 ones(3):全1矩阵
    • zeros():全0矩阵
    • eye():单位矩阵
    • diag():对角矩阵
    • magic():魔方矩阵
    • rand():生成0-1均匀分布的随机矩阵
    • randn():生成高斯分布的随机矩阵

稀疏矩阵

  • 存储方式
    仅存储非零元素及其行列索引,节省内存空间

  • 密度
    表示非零元素所占比例

  • 转换函数
    提供满矩阵与稀疏矩阵之间的相互转换

密度:

转换函数:满矩阵-稀疏矩阵

结论

MATLAB 的稀疏矩阵采用 列优先顺序下的压缩列存储(CSC)格式,通过仅保存非零元素及其行列索引,实现了高效的内存利用和运算性能。

  1. 其他功能
  • 导入外部数据
    使用 load 命令导入外部数据

  • 多维数组
    支持多维数组的操作与计算

1.数据类型

  • 整数判断:isinteger(x)
  • 类型查询:class(x)
  • 默认类型:双精度浮点

2.类型转换函数

  • z = complex(x,y) // 由实部x和虚部y构造
  • z = complex(x) // 虚部默认为0
  • 直接赋值: z = 12 + 6i z = rand(2)*2

3.字符,结构体(C++)

字符类型

在C++中,字符使用char类型表示,它存储单个字符。字符常量用单引号括起来,例如'A''1''#'

字符编码

  • 标准ASCII字符占用1个字节(8位)
  • 扩展ASCII字符集包含256个字符(0-255)
  • 宽字符类型wchar_t用于存储更大字符集(如Unicode)

字符操作示例

char ch = 'B';
cout << "Character: " << ch << endl;
cout << "ASCII value: " << (int)ch << endl;  // 输出66

// 字符运算
char next = ch + 1;  // 'C'

结构体

结构体(struct)是C++中用于将不同类型的数据组合在一起的复合数据类型。

结构体定义

struct Student {
    int id;
    string name;
    float gpa;
    char grade;
};

结构体使用

// 声明结构体变量
Student s1;

// 初始化结构体成员
s1.id = 1001;
s1.name = "Alice";
s1.gpa = 3.8;
s1.grade = 'A';

// 另一种初始化方式
Student s2 = {1002, "Bob", 3.5, 'B'};

结构体数组

Student classList[30];
classList[0] = {1001, "Alice", 3.8, 'A'};
classList[1] = {1002, "Bob", 3.5, 'B'};

结构体指针

Student* ptr = &s1;
cout << "Name: " << ptr->name << endl;  // 使用箭头运算符访问成员

嵌套结构体

struct Date {
    int day;
    int month;
    int year;
};

struct Employee {
    int empId;
    string name;
    Date hireDate;
    float salary;
};

结构体与函数

// 结构体作为函数参数
void printStudent(const Student& s) {
    cout << "ID: " << s.id << endl;
    cout << "Name: " << s.name << endl;
    // ...
}

// 返回结构体的函数
Student createStudent(int id, string name, float gpa, char grade) {
    Student s;
    s.id = id;
    s.name = name;
    s.gpa = gpa;
    s.grade = grade;
    return s;
}

结构体与类的关系

在C++中,结构体和类非常相似,主要区别在于默认访问权限:

  • 结构体成员默认是public
  • 类成员默认是private

现代C++中,结构体也可以包含成员函数、构造函数等类的特性。

 4.元胞数组(支持存储不同类型数据)

5.函数句柄

可作为参数传递给其他函数,C++中有相同概念函数指针或回调函数,执行时机和逻辑分离;

  • 可作为参数传递
  • 类似C++中的函数指针/回调函数
  • 实现执行时机与逻辑分离

6.字符串

1.程序

M文件以.m为扩展名。通过编写M文件,可以完成各种复杂运算任务。

eg:

循环语句:for and while 前者有次数,后者没有,通过条件判断式来决定

条件语句:ifelse switch case

  • 循环语句

    • for:基于固定次数的循环
    • while:基于条件判断的循环
  • 条件语句

    • if-else:多条件分支判断
    • switch-case:多选项条件判断
  • 流程控制命令

    • continue:跳过当前循环
    • return:退出函数
    • break:终止循环
  • 交互命令

    • echo:显示执行过程
    • error:抛出错误信息
    • keyboard:进入调试模式

error

keyboard

2.调试

1.矩阵运算

  1. 范数
  2. 行列式(det)
  3. 条件数(cond)判断奇异性
  4. 秩(rank)
  5. 迹(trace)
  6. 特征值和特征向量
  7. 矩阵空间夹角

范数

det 

cond判断奇异性

rank

trace

特征值和特征向量

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值