I have tried the following piece of script and got problems related to the use of zeros():
X = X(:);
N = length(X);
measurement_values(n)= zeros(1,tau); % tau=20
for n = 1:tau
y_tau=zeros(1,N/tau); % Line 27 ---> Error appears here.
for j = 1:N/n
y_tau(j) = mean(X(((j-1)*n+1):j*n));
end
measurement_values(n) = SampEn(y_tau,r,m);
end
Error report:
Error using zeros Size inputs must be integers.
Error in MSE (line 27) y_tau=zeros(1,N/tau);
Is there a way to fix the problem?
I checked the tutorial but still could not solve the problem.
Many thanks,
Massilon

 채택된 답변

Stephen23
Stephen23 2017년 5월 31일
편집: Stephen23 2017년 5월 31일

1 개 추천

As the error message clearly states, the inputs to zeros must be integer values (e.g. 0, 1, 2, ...). With your code you are supplying a fractional value of N/tau:
y_tau = zeros(1,N/tau)
which does not make any sense because how many zeros would you expect from, for example:
zeros(1,2.5)
???
The solution is to ensure that you supply integer values to zeros.

댓글 수: 2

Hi Stephen, thanks for your answer. Yes, I agree completely. This code is not my own code. Surely, something is missing. I have thought to use the ceil(). But then there is a problem caused by too many arguments. Is there still a way of using the function ceil()? Many thanks, Massilon
y_tau = zeros(1,ceil(N/tau))

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Mathematics에 대해 자세히 알아보기

태그

질문:

2017년 5월 31일

댓글:

2017년 5월 31일

Community Treasure Hunt

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

Start Hunting!

Translated by