我有問題,關於我太感興趣,假設我有兩個M文件在MATLAB中,在第一個我已經描述了以下函數來計算峯值和峯值indeeded在MATLAB中使用嵌套函數M文件
function [peaks,peak_indices] = find_peaks(row_vector)
A = [0 row_vector 0];
j = 1;
for i=1:length(A)-2
temp=A(i:i+2);
if(max(temp)==temp(2))
peaks(j) = row_vector(i);
peak_indices(j) = i;
j = j+1;
end
end
end
,並在第二個M-文件我有一些代碼用於描述給定的數據樣本正弦模型
function [ x ]=generate(N,m,A3)
f1 = 100;
f2 = 200;
T = 1./f1;
t = (0:(N*T/m):(N*T))';
wn = rand(length(t),1).*2 - 1;
x = 20.*sin(2.*pi.*f1.*t) + 30.*cos(2.*pi.*f2.*t) + A3.*wn;
end
我的問題是如何把它結合在一起呢?一個解決辦法是隻創建兩個M文件到文件夾,然後從一個M文件中調用函數,並對給定的矢量和ge進行操作結果,然後調用第二個函數從另一個M文件給定的結果,並最終得到我們想要的,但我想建立它在一個大的M文件,在C + +,在Java中,我們可以創建類,但我不知道如果我們能夠做到在MATLAB同樣也是如此,請大家幫我澄清一切,用find_peaks功能分爲生成功能
更新: 確定現在我想顯示簡單的變化是我在我的代碼
取得function [ x ] = generate(N,m,A3)
f1 = 100;
f2 = 200;
T = 1./f1;
t = (0:(N*T/m):(N*T))'; %'
wn = rand(length(t),1).*2 - 1;
x = 20.*sin(2.*pi.*f1.*t) + 30.*cos(2.*pi.*f2.*t) + A3.*wn;
[pks,locs] = findpeaks(x);
end
我用findpeaks內置函數在MATLAB中,但我得到以下錯誤
generate(1000,50,50)
Undefined function 'generate' for input arguments of type 'double'.
我也感興趣什麼是有效的採樣率,以避免混疊?
如果你的目標寫內MATLAB的面向對象的代碼(如Java和C++),你可以很容易地做到這一點! – fpe 2013-03-21 13:37:11