Why is my GUI program producing an error when I 'Run' it?

SampleEntropyのコードです。太字の部分、SampleEntropyが定義されていない、とエラーが出ます。どのように対処すればよいでしょうか?
%% SAMPLE ENTROPY
COP=COP';
%% Downsampling to 100 Hz (if Fs>100); see explanation in data analysis section of main paper
if Fs>100
Ratio = Fs/100;
COP_resample=resample(COP,1,Ratio);
else
COP_resample = COP;
end
%% Calculation of sample entropy of the anterior-posterior (y) and mediolateral (x) COP time series.
% Defining SEn parameters
m=3;
r=0.01;
%Calculating estimates and errors (latter are not used)
N_COP_x = (COP_resample(:,1)-(mean(COP_resample(:,1))))/var(COP_resample(:,1));
N_COP_y = (COP_resample(:,2)-(mean(COP_resample(:,2))))/var(COP_resample(:,2));
[SEN_x,err_x]=sampleEntropy(N_COP_x,m,r);
[SEN_y,err_y]=sampleEntropy(N_COP_y,m,r);
% SEn_total = SEN_total(length(SEN_total),1);
SEn_x = SEN_x(length(SEN_x),1);
SEn_y = SEN_y(length(SEN_y),1);

 Accepted Answer

sampleEntropyという関数がMATLABの検索パスに入っていないためです。
sampleEntropy.mファイルがあるフォルダーをaddpathで検索パスに追加すれば実行できるようになると思います。

9 Comments

ご返信ありがとうございます。
sampleEntropy.mファイルをダウンロードし、コマンドウィンドウでaddpathを行う流れでしょうか?
そのとおりです。sampleEntropyはMATLAB本体やToolboxが提供している関数ではないので、カスタムで作られた関数だと思われますが、どこかしらから入手する必要がありそうです。
度々申し訳ございません。
現在のフォルダの部分にダウンロードしたSampleEntropyを置いた状態でaddpathを行うのですが、警告: 名前が存在しないか、ディレクトリではありません C:\Users\megan\Downloads\SampEn\sampleentropy
> path (行 109) 内
addpath (行 86) 内
となります。どのようにすればよいでしょうか。
実際のSampleEntropyのファイルがどうなっているのかこちらで分からないのですが、もしFileExchangeや他サイトからダウンロードしたものでしたらリンクをお教えいただければ検証できます。
ありがとうございます。
matlabのサイトからダウンロードしました。
こちらの取り込みができないです。https://jp.mathworks.com/matlabcentral/fileexchange/69381-sample-entropy
ダウンロードしましたが、関数名はsampenになっていてsampleEntropyではないですね。
また、出力もvalueの1変数だけになっています。上記のコード
[SEN_x,err_x]=sampleEntropy(N_COP_x,m,r);
の部分は出力が2変数になっているのですが、呼び出したい関数はsampenで合っているのでしょうか?
もしこれを呼び出すとしたら、
addpath('C:\Users\megan\Downloads\SampEn')
を実行した後、
SEN_x=sampen(N_COP_x,m,r);
SEN_y=sampen(N_COP_y,m,r);
でできると思います。
ご返信ありがとうございます。
addpath('C:\Users\megan\OneDrive\デスクトップ\914\データ\1yama\cop\SampEn\sampen.m')
% [SEN_x,~]=sampen(N_COP_x,m,r);
% [SEN_y,~]=sampen(N_COP_y,m,r);
SEN_x=sampen(N_COP_x,m,r);
SEN_y=sampen(N_COP_y,m,r);
で流すと新たに、警告: 名前が存在しないか、ディレクトリではありません C:\Users\megan\OneDrive\デスクトップ\914\データ\1yama\cop\SampEn\sampen.m
[WARNING] Using default distance method: chebychev.
[WARNING] Using default distance method: chebychev.
>> というエラーコードが出ます。
% [SEN_x,~]=sampen(N_COP_x,m,r);
% [SEN_y,~]=sampen(N_COP_y,m,r);
を流した場合は出力引数が多すぎますと出ます。
度々申し訳ありません。
このような場合どのように対処すればよいでしょうか?
コメントで記載したコードではaddpathはフォルダー名を指定しています。ファイル名ではなくフォルダー名を引数に入れるので
addpath('C:\Users\megan\OneDrive\デスクトップ\914\データ\1yama\cop\SampEn')
が正しいです。
ありがとうございました。
無事結果が出ました。
丁寧にご返答頂き大変助かりました。

Sign in to comment.

More Answers (0)

Categories

Find more on MATLAB in Help Center and File Exchange

Tags

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!