Subscript indices must either be real positive integers or logicals.
    4 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Dam Tung
 el 10 de Dic. de 2019
  
    
    
    
    
    Comentada: Dam Tung
 el 10 de Dic. de 2019
            Dear All,
I got this error "Subscript indices must either be real positive integers or logicals" when using Matlab. Please help me how to fix this error and regrid my data. Below show my code. 
L=28.3;
B=7.08;
T=2.64;
H=3.42;
delta=0.561;
alpha=0.83;
beta=0.861;
vs=11;
om=L*(T+B/2)*(0.55+1.52*delta);
v0=vs*0.5144;
for i=1:0.1:1.5
    v=v0*i;
    fr=v/(9.81*L)^0.5;
    Re=v*L/16.1;
    CF0=10^3*0.455*(log10(Re*10^7)).^(-2.58);
    Ca=0.5;
    Cap=0.25;
    Pdv=(L*B*T*delta*1.025)^(1/3)*vs^4.5/554.7;
% зависимость Cr от L/B
a1=L/B;
y1=[0.21 0.23 0.25 0.27 0.29 0.31 0.34 0.36 0.37];
e1=[3.5 3.75 4 4.25 4.5 4.75];
f1=[1.2 1.17 1.15 1.11 1.05 0
    1.48 1.46 1.35 1.31 1.27 1.2
    1.89 1.86 1.78 1.75 1.68 1.58
    2.4 2.35 2.32 2.24 2.15 2.03
    2.92 2.89 2.81 2.73 2.62 2.5
    3.55 3.5 3.42 3.31 3.2 3.02
    5 4.8 4.66 4.51 4.19 3.82
    6.78 6.45 6.08 5.72 5.38 4.92
    7.81 7.51 7 6.57 6.12 5.76];
c1=interp2(e1,y1,f1,a1,fr);
% зависимость Cr от B/T
a2=B/T;
y2=[0.21 0.23 0.25 0.27 0.29 0.31 0.35 0.36 0.37];
e2=[2.3 2.5 2.7 2.9 3.1];
f2=[1.38 1.34 1.29 1.21 1.1
    1.57 1.55 1.52 1.49 1.45
    1.98 1.97 1.94 1.89 1.79
    2.47 2.45 2.41 2.34 2.25
    2.98 2.97 2.94 2.89 2.79
    3.58 3.55 3.51 3.46 3.32
    4.28 4.23 4.16 4.08 3.99
    5.48 5.41 5.34 5.21 5.04
    7.18 7.06 6.95 6.86 6.74];
c2=interp2(e2,y2,f2,a2,fr);
% Зависимость Cr от beta
a3=beta;
y3=[0.21 0.23 0.25 0.27 0.29 0.31 0.34 0.36 0.37];
e3=[0.7 0.75 0.8 0.85 0.9];
f3=[1.1 1.12 1.14 1.17 1.26
    1.46 1.49 1.53 1.55 1.59
    1.85 1.89 1.92 1.96 2
    2.16 2.27 2.35 2.42 2.58
    2.8 2.84 2.87 2.97 3.38
    3.19 3.29 3.48 3.52 4
    4.08 4.48 4.54 4.8 5.28
    5.4 5.78 5.92 6.1 6.76
    6.2 6.65 6.83 7.27 7.88];
c3=interp2(e3,y3,f3,a3,fr);
% Зависимость Cr от xc
a4=0;
y4=[0.21 0.23 0.25 0.27 0.29 0.31 0.34 0.36 0.37];
e4=[-0.025 -0.02 -0.015 -0.01 -0.005 0 0.005 0.01];
f4=[1.15 1.15 1.15 1.15 1.15 1.15 1.15 1.15
    1.5 1.52 1.54 1.56 1.58 1.61 1.65 1.7
    1.76 1.79 1.84 1.89 1.96 2 2.05 2.1
    2.05 2.11 2.2 2.36 2.48 2.58 2.68 2.78
    2.57 2.67 2.77 2.87 2.99 3.08 3.19 3.38
    2.95 3.08 3.31 3.46 3.62 3.8 4 4.08
    3.86 4.06 4.4 4.62 4.95 5.1 5.42 5.63
    5.04 5.41 5.79 6.03 6.34 6.58 6.85 7
    6.1 6.47 6.75 7 7.32 7.5 7.71 7.82];
c4=interp2(e4,y4,f4,a4,fr);
% Зависимость Cr от коэффициент ф и ф0
a5=delta/beta;
y5=[0.21 0.23 0.25 0.27 0.29 0.31 0.34 0.36 0.37];
e5=[0.575 0.6 0.625 0.65 0.675];
f5=[1.04 1.1 1.25 1.47 1.74
    1.47 1.56 1.73 1.9 2.06
    1.83 1.94 2.04 2.37 2.55
    2.05 2.3 2.65 2.98 3.3
    2.55 2.9 3.45 3.98 4.77
    3 3.5 4.12 5 6
    4.18 4.7 5.42 6.38 7.48
    5.81 6.1 6.55 7.43 8.5
    6.82 7 7.56 8.35 9.28];
c5=interp2(e5,y5,f5,a5,fr);
a6=0.6;
c6=interp2(e5,y5,f5,a6,fr);
Cr=(c1.*c2.*c3.*c4.*c5)./(c6.^4);
C=CF0+Ca+Cap+Cr'
R=C.*1.025.*(v.^2)*om*0.5
% определение требуемой мощности при травлении
Rtr=R/10^3+40;
t=0.078;
w=0.078
n1=0.55;
n2=0.96;
n3=0.99;
n=n1*n2*n3*(1-t)/(1-w);
Pdtr=v*Rtr/n;
load Marineengine.mat
En = [engine.Mass;engine.Power; engine.Length ];
kp = En(2,:)./Pdtr;
np = find(kp > 1.05 & kp <1.2);
[n1,m1] = min(En(1,np));
k=engine(np(m1(1,end)));
Mdv = En(1,np(m1(1,end)));
N = En(2,np(m1(1,end)))
l = En(3,np(m1(1,end)));
kp2=N/Pdtr;
if kp2 > 1.05 & kp2 <1.2
     N1=N;
     break
end
end
Thank you very much,
Best regards
0 comentarios
Respuesta aceptada
  the cyclist
      
      
 el 10 de Dic. de 2019
        
      Editada: the cyclist
      
      
 el 10 de Dic. de 2019
  
      In this line:
np = find(kp > 1.05 & kp <1.2);
there are no values of kp that satisfy this condition, so np is empty.
That carries through the code until you get the error you saw.
Más respuestas (0)
Ver también
Categorías
				Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

