日常简单数据分析之matlab (一)

文章目录

    • [1. 背景](#1. 背景)
    • [2. 待分析数据](#2. 待分析数据)
      • [3. 函数介绍](#3. 函数介绍)
      • [3.1 提取函数](#3.1 提取函数)
      • [3.2 画图函数](#3.2 画图函数)
    • [4. 分析步骤](#4. 分析步骤)

1. 背景

日常工作中,相信很多人也会遇到很长片段的数值计算并分析,如果这些数值可以复制到excel中就还好,可以充分利用excel强大的公式来计算。如果夹杂一些格式的符号作为分割符号,就比较难办了。但如果你是一个开发,那么使用matlab就几行代码的事情,这是非常方便的。

2. 待分析数据

这些数据指的是好几列数据,中间只是简单用分割符 区分了一下,并不包含其他格式的内容。如果包含了,就需要先进行数据提取到希望的格式,再按照此方法进行计算。

  • 简单数据内容如下:
c 复制代码
      9,0,1764646526152078,1764646526241306
     67,0,1764646526190572,1764646526291972
     90,1,1764646526228836,1764646526308426
    136,1,1764646526269024,1764646526346550
    163,2,1764646526297787,1764646526349888
    193,0,1764646526312443,1764646526384586
    230,0,1764646526352615,1764646526421861
    269,1,1764646526349327,1764646526445200

3. 函数介绍

针对上面的数据,我们需要先已分隔符作为标识,然后分别按列进行提取,提取之后就可以进行相关计算了。

3.1 提取函数

  • readmatrix 介绍
cpp 复制代码
A = readmatrix(filename)  % 读取文件并返回矩阵
A = readmatrix(filename, Name, Value)  % 使用指定Name标识的-Value值对组指定选项

Name标识如下:

  • 'Range':指定数据范围(如 'A1:C10')
  • 'Sheet':指定 Excel 工作表(如 2 或 'Sheet1')
  • 'Delimiter':指定分隔符(如 ',' 或 '\t')
  • 'NumHeaderLines':跳过的标题行数
  • 'TreatAsMissing':将特定文本视为缺失值(如 ['NA', 'NaN'])

针对数据分析,我们就可以使用 Delimiter 标识进行数据提取。

3.2 画图函数

  • plot 介绍
c 复制代码
plot 是 MATLAB 中用于绘制二维图形的函数,支持多种数据输入方式和图形属性设置。其核心功能是通过连接数据点绘制曲线或散点图。

```c
plot(y)  % 仅输入纵坐标数据
plot(x, y)  % 输入横纵坐标数据
plot(x1, y1, x2, y2, ...)  % 多条曲线绘制
plot(..., 'LineStyle', 'Color', 'Marker')  % 设置图形属性

常用调用格式
‌- 单变量输入‌
plot(y)  % 以索引为横坐标,y为纵坐标
plot(X)  % X为复数时,实部为横坐标,虚部为纵坐标
示例:plot([1, 2, 3, 4]) 绘制折线图(横坐标为1:4)。

‌- 双变量输入‌
plot(x, y)  % x和y为同维向量或矩阵
示例:plot(0:0.1:2*pi, sin(0:0.1:2*pi)) 绘制正弦曲线。

‌- 多曲线绘制‌
plot(x1, y1, x2, y2, ...)  % 每对(x, y)绘制一条曲线
示例:plot(1:10, rand(1,10), 1:10, rand(1,10)) 绘制两条随机曲线。

- 图形属性设置
‌线型‌:'-'(实线)、'--'(虚线)、':'(点线)、'-.'(点划线)
‌颜色‌:'r'(红)、'g'(绿)、'b'(蓝)、'k'(黑)
‌标记‌:'o'(圆)、'x'(叉)、'+'(加号)、'*'(星)
示例:plot(x, y, 'r--o') 绘制红色虚线圆点曲线。

4. 分析步骤

  1. 使用分割符提取数据
  2. 获得数据所需的列
  3. 简单计算
  4. 画图

大致代码如下:

matlab 复制代码
% 使用 , 分割符提取文件,返回矩阵形式
data = readmatrix('time.txt', 'Delimiter', ',');

% 分别获得需要的列
col1 = data(:,3);
col2 = data(:,4);

% 进行简单计算
diff_col = col2 - col1;

figure;

% plot 画图
plot(diff_col, 'b-o','LineWidth',1.5,'MarkerSize',1);

grid on;

% 设置图的标题
xlabel('行号 (Index)');
ylabel('第2列 - 第1列');
title('第2列减去第1列的结果');
legend('差值');

大致呈现结果如下:

相关推荐
Dev7z1 天前
基于 MATLAB 的铣削切削力建模与仿真
开发语言·matlab
fengfuyao9851 天前
基于MATLAB的表面织构油润滑轴承故障频率提取(改进VMD算法)
人工智能·算法·matlab
机器学习之心1 天前
基于随机森林模型的轴承剩余寿命预测MATLAB实现!
算法·随机森林·matlab
rit84324991 天前
基于MATLAB的环境障碍模型构建与蚁群算法路径规划实现
开发语言·算法·matlab
hoiii1871 天前
MATLAB SGM(半全局匹配)算法实现
前端·算法·matlab
yong99901 天前
MATLAB面波频散曲线反演程序
开发语言·算法·matlab
爱吃泡芙的小白白1 天前
环境数据可视化利器:Hexbin Chart 全解析与应用实战
信息可视化·数据挖掘·数据分析·环境领域·hexbin chart
爱吃泡芙的小白白1 天前
环境数据可视化利器:气泡图(Bubble Chart)全解析
信息可视化·数据挖掘·数据分析·气泡图·bubble chart·环境领域
yugi9878381 天前
基于MATLAB的一键式EMD、EEMD、CEEMD和SSA信号去噪实现
开发语言·matlab·信号去噪
youcans_1 天前
【STM32-MBD】(15)Simulink 模型开发之三相互补 PWM
stm32·单片机·嵌入式硬件·matlab·foc