使用Arduino,NeoGPS和MPU6050,我将一些数据记录在SD卡上。
在 Matlab 上,我正在将从字节值的MPU6050加速度转换为 m/s^2。
- 代码在 Matlab 上加载数据
- 它提取ax ay az
- 调用从字节转换为 m/s^2 的函数
- 它定义要连接的所有列
- 它连接所有列
我有一个土木工程师,所以我对编码不是很实用。
我想知道是否存在更有效的解决方案,特别是使用索引?
这是我的愚蠢代码
%Open the file
filename= uigetfile ('.csv');
fileID = fopen (filename);
logmpu6050 =csvread(filename);
fclose (fileID);
%Converting acceleration from Byte to m/s^2
[ax,ay,az]=convms(logmpu6050);
%Replacing the old accelaration values with the new
cat1=logmpu6050(:,1:8);
cat2=cat(2,ax,ay,az);
cat3=logmpu6050(:,13:15);
newlogmpu6050= cat(2,cat1,cat2,cat3);
永远感谢您的耐心等待!
由于中间ax, ay, az
的串联,它中断了用于索引logmpu6050
的流程,因此您无法完全使用索引来创建矩阵。
但是,如果您想在一行中执行此操作,则可以执行以下操作:
newlogmpu6050 = [logmpu6050(:,1:8) ax ay az logmpu6050(:,13:15)];
这仍然执行所需的串联,但你不会不必要地调用cat
对我来说,这看起来更整洁。