使用索引(或高效解决方案)代替 "Cat " 替换行或列
Replacing Rows or Columns using Indexing (or efficient too solutions) instead of "Cat "
使用 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
,而且对我来说这看起来更整洁。
使用 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
,而且对我来说这看起来更整洁。