使用索引替换行或列(或有效的解决方案)而不是“Cat”

时间:2017-05-17 15:27:49

标签: matlab indexing accelerometer cat

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

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

  1. 代码在Matlab上加载数据
  2. 提取 ax ay az
  3. 调用从byte转换为m / s ^ 2
  4. 的函数
  5. 定义要连接的所有列
  6. 它连接所有列
  7. 我有一个土木工程师的背景,所以我对编码不太实际。

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

    这是我的 dumb 代码

    %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); 
    

    总是感谢您的耐心等待!

1 个答案:

答案 0 :(得分:1)

由于ax, ay, az在中间串联,它会破坏您用于索引到logmpu6050的流量,因此您无法完全使用索引来创建矩阵。

但是如果你想在一行中完成,你可以这样做:

newlogmpu6050 = [logmpu6050(:,1:8) ax ay az logmpu6050(:,13:15)];

这仍然可以执行所需的连接,但您不会不必要地调用cat而对我来说这看起来很整洁。