使用索引(或高效的解决方案)代替"Cat "替换行或列



使用Arduino,NeoGPS和MPU6050,我将一些数据记录在SD卡上。

在 Matlab 上,我正在将从字节值的MPU6050加速度转换为 m/s^2。

  1. 代码在 Matlab 上加载数据
  2. 它提取ax ay az
  3. 调用从字节转换为 m/s^2 的函数
  4. 它定义要连接的所有列
  5. 它连接所有列

我有一个土木工程师,所以我对编码不是很实用。

我想知道是否存在更有效的解决方案,特别是使用索引?

这是我的愚蠢代码

%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对我来说,这看起来更整洁。

最新更新