小编Mah*_*qui的帖子

通过平均对Matlab中的数据进行下采样

我在Matlab中有2个数据集,我需要相互绘图 - 一个在x轴上,一个在y轴上.使用不同的方法收集每组的数据,因此采样率显着不同,直到我在两组中没有相同数量的数据点,我不能相互映射一个.

使用downsampleMatlab函数在Matlab中对数据进行下采样非常简单.

A = [-3 -1.5 0 1.5 3 4.5 6 7.5 9...] (goes on until 21) 
B = [-3.9 -3.8 -3.7 -3.6 -3.5 -3.5 -3.3 -3.2 -3.1 -3.0 -2.9 -2.8...] (goes on until 22) 
Run Code Online (Sandbox Code Playgroud)

A的采样率为1.5s,B的采样率为0.1s.我已经能够成功地使用downsampledownsample(B,15,10)得到它在同一时间启动"-3S"(这意味着在我的数据的东西,所以我需要得到它在那个点开始),并在1.5秒的采样的采样率.

然而,现在,我想知道是否有一种方法可以让我取15分的平均值,而不是每15分选一分?downsample,我使用它的方式只是选择每15分.但是,我希望能为我平均得到15分.有办法做到这一点吗?

我为一个简单/较小的向量写了一个for循环,看看我是否可以做到.因为A = [1 2 3 4]我想要压缩数据,以便A只有2个条目,这样它平均为A(1)和A(2),然后是A(3)和A(4).

A = [1 2 3 4] 
for i = 1:3
  P(i) = mean(A(i:i+1))
end 
Run Code Online (Sandbox Code Playgroud)

然而,这并不像我想要的那样工作,因为我不希望它平均为A(2)和A(3).我希望它获取前两个条目,平均它们,然后接下来的两个条目,然后平均它们.等等.

有人可以帮忙吗?

谢谢

matlab for-loop vector data-manipulation downsampling

5
推荐指数
1
解决办法
3151
查看次数

来自Matlab变量的结构名称

我创建了一个包含几个不同字段的结构.这些字段包含来自许多不同主题/参与者的数据.

在脚本的开头,我提示用户输入"主题编号",如下所示:

 prompt='Enter the subject number in the format SUB_n: ';
 SUB=input(prompt,'s');
Run Code Online (Sandbox Code Playgroud)

第34个主题的示例SUB_34.

我想命名我的结构,使它包含这个字符串......即我想要我的结构名称SUB_34,例如SUB_34.field1.但我不知道该怎么做.

我知道你可以为特定的字段名称分配字符串,例如,S如果我想要field1被调用,z则可以为结构分配字符串

S=struct;
field1='z';
S.(field1);
Run Code Online (Sandbox Code Playgroud)

但它不适用于结构名称.

有人可以帮忙吗?

谢谢

string variables matlab struct matlab-struct

2
推荐指数
1
解决办法
1260
查看次数