Я строю пример функции с Matlab.Функция такова:
function output = freqDomainHRV(ibi,VLF,LF,HF,AR_order,window, ...
noverlap,nfft,fs,methods,flagPlot)
//code
end
Теперь, чтобы вызвать эту функцию, я могу использовать этот код:
output = freqDomainHRV(sampledata,[0 .16],[.16 .6],[.6 3], ...
% 16,256,128,512,10,{'welch','ar','lomb'},1);
Теперь я хочу вызвать эту функцию из программы на C #, поэтому яя создаю dll из matlab, я импортировал его в свой проект Visual Studio, затем я пишу этот код:
private void calculateFreqDomainHRV()
{
//costruisco l'array contenente i valori dell ECG
MWNumericArray res = new MWNumericArray(new double[] { 0.789, 0.828, 0.844, 0.820 });
MWNumericArray vlf = new MWNumericArray(new double[] { 0, 0.04 });
MWNumericArray lf = new MWNumericArray(new double[] { 0.04, 0.15 });
MWNumericArray hf = new MWNumericArray(new double[] { 0.15, 0.40 });
MWCellArray method = new MWCellArray(3);
method[1] = new MWCharArray("welch");
method[2] = new MWCharArray("ar");
method[3] = new MWCharArray("lomb");
var arOptionOrder = 16;
var winWith = 128;
var winOverlap = 64;
var pointPSD = 1024;
var interpolationRate = 2;
/*freqDomainHRV(sampledata,[0 .16],[.16 .6],[.6 3], ...
% 16, 256, 128, 512, 10);*/
var output = matlab.freqDomainHRV(res, vlf, lf,hf, arOptionOrder, winWith, winOverlap, pointPSD, interpolationRate, method,1);
}
, но если я пытаюсь вызвать этот метод, у меня появляется это сообщение об ошибке:
. MWMCR::EvaluateFunction error ...
Interpolation requires at least two sample points in each dimension.
Error in => freqDomainHRV.m at line 97.
... Matlab M-code Stack Trace ...
at
file D:\MATLAB\R2018a\mcr\toolbox\matlab\polyfun\interp1.p, name interp1, line 0.
at
file C:\Users\michele.castriotta\AppData\Local\Temp\mik\mcrCache9.4\Matlab2\MatlabECG\freqDomainHRV.m, name calcWelch, line 145.
at
file C:\Users\michele.castriotta\AppData\Local\Temp\mik\mcrCache9.4\Matlab2\MatlabECG\freqDomainHRV.m, name freqDomainHRV, line 97.