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);

 Respuesta aceptada

Kojiro Saito
Kojiro Saito el 7 de Mzo. de 2023

0 votos

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

9 comentarios

ご返信ありがとうございます。
sampleEntropy.mファイルをダウンロードし、コマンドウィンドウでaddpathを行う流れでしょうか?
そのとおりです。sampleEntropyはMATLAB本体やToolboxが提供している関数ではないので、カスタムで作られた関数だと思われますが、どこかしらから入手する必要がありそうです。
康二 中西
康二 中西 el 8 de Mzo. de 2023
Movida: Atsushi Ueno el 8 de Mzo. de 2023
度々申し訳ございません。
現在のフォルダの部分にダウンロードした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')
が正しいです。
ありがとうございました。
無事結果が出ました。
丁寧にご返答頂き大変助かりました。

Iniciar sesión para comentar.

Más respuestas (0)

Etiquetas

Preguntada:

el 7 de Mzo. de 2023

Comentada:

el 9 de Mzo. de 2023

Community Treasure Hunt

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

Start Hunting!