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

Replacing Rows or Columns using Indexing (or efficient too solutions) instead of "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,而且对我来说这看起来更整洁。