کلیدستان

نسخه‌ی کامل: مشکل در متلب (خطای Subscript indices must either be real positive integers or logica)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
با سلام من به این error برخورد کردم لطفا کمکم کنید :
Subscript indices must either be real positive integers or logicals.

برنامه ی من :

کد پی‌اچ‌پی:
~x=input ('x=');
y=input ('y=');
z=input ('z=');
a=input ('a=');
b=input ('b=');
f=input ('f=');
p=sqrt (x^y^2);
E=(a^b^2)/a^2;
landa=atan(y/x);
N(0)=a;
h(0)=sqrt(x^y^z^2) - sqrt(a*b);
phi(0)=atan((z/p)*(1-(E*N_0)/(N(0)+h(0)))^-1);
phi(0)=phi(0)*(pi/180);
i=0;
while (
phi(i)-phi(i-1))<a*(10^-10)
        (h(i)-h(i-1))<;(10^-10),
i=i+1; 
N
(i)=(a/sqrt((cos(phi(i-1))^2)+((b^2/a^)*(sin(phi(i-1))^2))));
h(i)=((p/cos(phi(i-1)))-N(i));
phi(i)=phi(i)+(atan((z/p)*(1-((E-N(i))/(N(i)+h(i))))^-1));
end 

که این error مربوطه به ~N(0)=a;

باتشکر
سلام.
اندیس هایی که برای اشاره به عنصرهای یک ماتریس (یا بردار) به کار می بریم، از 1 شروع می شوند، نه از 0 (اگرچه در برخی زبان های برنامه نویسی از 0 شروع می شوند، ولی در متلب اینگونه نیست).
مثال :

کد پی‌اچ‌پی:
clear all
close all
clc

= [5 6 7];
A(1

نتیجه ارای کد متلب (MATLAB) بالا :

کد پی‌اچ‌پی:
ans =

     


اکنون همان کد را به صورت اشتباه می نویسیم :

کد پی‌اچ‌پی:
clear all
close all
clc

= [5 6 7];
A(0

نتیجه ارای کد متلب (MATLAB) بالا :

کد پی‌اچ‌پی:
Subscript indices must either be real positive integers or logicals.

Error in Untitled5 (line 6)
A(0

مشاهده می کنید که همان خطای مورد نظر نمایش داده می شود.

ممنونم از راهنمایی تون
یه سوال دیگه در باره همون برنامه داشتم ممنون میشم جواب بدید:
به این error برخوردم
Index exceeds matrix dimensionsکه مربوط به شرط while هستش
این که اندیس ها از بعد ماتریس بیشتر شده اند ینی چی
یه دنیا ممنونم از زحماتتون