Matlab学习-数据转换、数据格式处理


前言

本文主要讲解了Matlab中使用到的数据类型之间的转换以及数据格式处理技巧,持续更新。。。


一、字节数组转浮点数

字节数组转浮点数通常用在解析HEX协议中,将4字节或8字节HEX数据解析为浮点数

1、4字节转single

test_data.dat数据中包含两组4bytes数据,如下图:
在这里插入图片描述
通过以下代码将test_data.dat的数据转换为2个single类型数据:

clear;clc;close all;

data = load('test_data.dat');
[m, n] = size(data);
f_array = zeros(1,m);    %新建存single数据数组,初始化为0
for i=1:m
    f_array(i)=typecast(uint8(data(i,1:4)), 'single');%提取data中的1-4列进行转换
end

转换结果如下:
在这里插入图片描述

2、8字节转double

8字节转double同理4字节转float,将下列代码:

f_array(i)=typecast(uint8(data(i,1:4)), 'single');%提取data中的1-4

改为:

f_array(i)=typecast(uint8(data(i,1:8)), 'double');%提取data中的1-8

即可,前提是test_data.dat中数据每行必须为8列。

二、数组行列数据交换

列数据交换可用在数据解析时大小端问题处理

1、数组两行数据交换位置

data = [1 2 3; 4 5 6; 7 8 9]
data1=data;
data1([1,3],:) = data1([3,1],:);    %1,3行交换

交换结果如下:
在这里插入图片描述
在这里插入图片描述

2、数组两列数据交换位置

data = [1 2 3; 4 5 6; 7 8 9]
data2=data;
data2(:,[1,3]) = data2(:,[3,1]);    %1,3列交换

交换结果如下:
在这里插入图片描述

三、矩阵两列数据数值加减乘除运算

以两列数据相乘和相加为例,相除参考相乘,相减参考相加

data = [1 2 3; 4 5 6; 7 8 9]
data3 = data(1:3,1) .* data(1:3,3)	%第一列和第三列相乘,1:3表示1~3行数据,两行的运算方式同两列运算
data4 = data(1:3,1) + data(1:3,3)

注意:乘除使用.*和./
转换结果如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值