我已导入语音音频信号,并且尝试查找 t (时间线)的所有值以及它们的索引,其中 yy2 (音频信号)值相似。
我可以使用histc
将 yy2 值分组,但如何获取,以便知道分组的 yy2 t 的值< / strong>值?
我应该使用histc
,因为垃圾箱(绘图中使用的总条形)将超过10个吗?
我的想法到哪里:
在下面的代码中,yy2模拟导入的音频信号。
clear, clc, clf,close all
pkg load signal
fs_rate=8000
len_of_sig=1.5; %length of signal in seconds
t=linspace(0,len_of_sig,fs_rate*len_of_sig);
yy2=.5*sin(2*pi*3*t)+.3*sin(2*pi*2.2*t);
subplot(2,1,1);plot(t,yy2,'-*');
subplot(2,1,2);hist(yy2)
Ps:我正在使用与Matlab类似的Octave 4.2.2。
答案 0 :(得分:1)
如果您希望索引和t
值的组,其中yy2
的值相似:
% Get uniqe valuse of yy2
unique_vals = unique(yy2);
% Get index groups for each unique yy2 value in a cell array
index_groups = arrayfun(@(v) find((yy2 == v)),unique_vals,'UniformOutput',false);
% Get t groups for each unique yy2 value in a cell array
t_groups = cellfun(@(v) t(v),index_groups,'UniformOutput',false);
% Get yy2 groups for each unique yy2 value in a cell array (not really required)
yy2_groups = cellfun(@(v) yy2(v),index_groups,'UniformOutput',false);