Matlab学习笔记

Magic Traits

文件读取

matlab 复制代码
fid = fopen(fn,'rt');
matlab 复制代码
out = fscanf(fid,spec,inf);
matlab 复制代码
fclose(fid);

2. 读取数据

matlab 复制代码
fid = fopen(fn,'rt');
out = textscan(fid,spec);

运算篇

  1. fprintf(" xxx %d",a),当a为数组时,会输出数组数目行,每行是一个元素+相关文本的copy
  2. index: b(i,j,k,:);
  3. 1,1,5->5: squeeze(a);
  4. 5->1,5/5,1: reshape(a,1,5);
  5. minimal square solution:
matlab 复制代码
% solution1
	c=A\b
% solution2
	A_=pinv(A)
	c=A_*b
  1. test struct in matlab
matlab 复制代码
% assum data be a struct
disp(['data=',class(data)]);
disp(fieldnames(data));
disp(data);

银河1-睿智的矩阵索引

  • 与torch、numpy不同,matlab索引不是先排列最后一维,再排列倒数第二维,
  • 反过来先派列第一维,再排列第二维,直到最后一维;

看个例子💐

matlab 复制代码
>> a= rand(2,3,4)
a(:,:,1) =
    0.7094    0.2760    0.6551
    0.7547    0.6797    0.1626
a(:,:,2) =
    0.1190    0.9597    0.5853
    0.4984    0.3404    0.2238
a(:,:,3) =
    0.7513    0.5060    0.8909
    0.2551    0.6991    0.9593
a(:,:,4) =
    0.5472    0.1493    0.8407
    0.1386    0.2575    0.2543
  • 依次排列(2)->(2,3)->(2,3,4)维度
  • 所以a(7)在3个维度的下标为(1,1,2)------(2-1)*2*3+(1-1)*2+1,对应0.1190
  • 而不是(1,2,3)---(1-1)*2*3+(2-1)*4+3,在numpy中为(0,1,2),
matlab 复制代码
>> a(7)
ans =
    0.1190

shortcuts keys

  1. 查找+替换:ctrl+H
  2. 反注释:ctrl+T
  3. cut:ctrl+W
相关推荐
Evand J2 天前
【MATLAB例程12】永磁同步电机基于增广无迹卡尔曼滤波的未知负载转矩在线观测
开发语言·matlab
分享资料3 天前
MATLAB 中分号 (;)的作用
matlab
Evand J3 天前
【PMSM例程11】永磁同步电机(PMSM)基于UKF的转速与转子位置估计。附下载链接
算法·matlab·卡尔曼滤波·永磁同步电机·ukf·pmsm·位置估计
严肃小白兔4 天前
优秀 MATLAB 作者、书籍推荐:国外经典教材与技术资源整理
matlab
熊猫_豆豆5 天前
buck-boost电路MATLAB仿真
matlab·电路·电力电子技术
逆向编程6 天前
MATLAB高级数据结构:cell、struct与table深度应用
开发语言·数据结构·matlab
星夜离尘566 天前
MATLAB 刚体坐标变换:点、方向和逆变换为什么不能混用
matlab
Evand J7 天前
【PMSM滤波例程2】PMSM未知负载转矩观测EKF。MATLAB例程(负载增广EKF与实际仿真结果)。附下载链接
开发语言·matlab·电机
机器学习之心7 天前
基于贝叶斯物理信息神经网络的矿产预测与不确定性量化,MATLAB代码及复现报告
人工智能·神经网络·matlab·贝叶斯物理信息神经网络
Evand J8 天前
【PMSM例程4】PMSM电阻辨识与模型补偿EKF,MATLAB例程。附下载链接,包运行成功
开发语言·matlab·电机·ekf·卡尔曼·pmsm