"Index in position 1 is invalid. Array indices must be positive integers or logical values."

I get the entitled error when ever i run the code below
nu=sum((i-(n+1)/2).*Y(i,:)
for the equation
and also the same error for
de=sqrt(n^3*(sum(Y(i,:)-mean(Y(i,:)))^.2))
for the equation
where first is the numerator and second is the denominator of D, "test for normality was given by D’Agostino"
full code
y1=[51 27 37 42 27 43 41 38 36 26 29]';
y2=[36 20 22 36 18 32 22 21 23 31 20]';
y3=[50 26 41 32 33 43 36 31 27 31 25]';
y4=[35 17 37 34 14 35 25 20 25 32 26]';
y5=[42 27 30 27 29 40 38 16 28 36 25]';
Y=[y1 y2 y3 y4 y5]
Y=sort(Y)
[n p]=size(Y)
nu=sum((i-(n+1)/2).*Y(i,:))
de=sqrt(n^3*(sum(Y(i,:)-mean(Y(i,:)))^.2))
D=nu./de
YY=sqrt(n)*(D-inv(2*sqrt(pi)))/0.02998598

2 Comments

Without the full code you are using it is difficult to provide a working solution. Try to make a MWE so we can run your code without any other dependencies and can reproduce your issue.
Currently it is not possible to tell if you are shadowing the sum function with a variable named sum, or if your i variable is not properly defined.
You didn't define i yourself, so now Matlab treats it as the imaginary unit. I don't have a clue what you're trying to do, but it seems you should read the documentation for the symbolic computation toolbox, or rewrite your expression to a normal Matlab computation.

Sign in to comment.

Answers (1)

Initialize variable i with 1, before using it
i=1;

2 Comments

Although this modification will make this code run without error, this will not return the solution for the mathematical expression. I don't understand the notation (specifically the equal sign inside the sum), but I'm sure this will not solve the problem.
now i have made some changes in the code however i is giving wrong answer
y1=[47.8,46.4,46.3,45.1,47.6,52.5,51.2,49.8,48.1,45.0,51.2,48.5,52.1,48.2,49.6,50.7,47.2,53.3,46.2,46.3]';
y2=[48.8,47.7,46.8,45.3,48.5,53.2,53,50,50.8,47,51.4,49.2,52.8,48.9,50.4,51.7,47.7,54.6,47.5,47.6]';
y3=[49,47.7,47.8,46.1,48.9,53.3,54.3,50.3,52.3,47.3,51.6,53,53.7,49.3,51.2,52.7,48.4,55.1,48.1,51.3]';
y4=[49.7,48.4,48.5,47.2,49.3,53.7,54.5,52.7,54.4,48.3,51.9,55.5,55,49.8,51.8,53.3,49.5,55.3,48.4,51.8]';
Y=[y1 y2 y3 y4];
Y=sort(Y)
n=length(Y)
T=[];
W=[];
for i=1:n
T=[T; ((i-(n+1)/2).*Y(i,:))]
W=[W; sqrt(n^3*((Y(i,:)-mean(Y)).^2))]
end
nu=sum(T)
de=sum(W)
D=nu./de
YY=sqrt(n).*(D-inv(2*sqrt(pi)))./0.02998598
where are the correct answer for the above question is
D=[.2848 .2841 .2866 .2851]
and
YY=[.4021 .2934 .6730 .4491]
please help anyone to resolve my issue.

Sign in to comment.

Asked:

on 7 Feb 2019

Commented:

on 8 Feb 2019

Community Treasure Hunt

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

Start Hunting!