مساعدة فى عمل كود بسيط على الماتلاب


(system) #1

فى البداية اشكر ادارة المنتدى شكرا جزيلا على هذا المنتدى القيم وادعو الله ان اوفق فى الاضافة اليه والتعلم منه باذن الله

البرنامج الذى انا بصدده يقوم بحساب توزيع درجات الحرارة على سطح مستطيل الشكل…كود البرنامج كما يلى

[LEFT]t=zeros(w,o)[/left]

 
[LEFT]for i=w-(0:m-2
j=o-(0:m-2)
x1=w-o
x2=i-j
for x1=x2
t(i,j)=e
end
end[/left]

[FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2]

مشكلتى هى انه عند تنفيذ البرنامج فان الماتلاب يتجاهل الشرط الذى وضعته والذى هو

[/size][/font][/size][/font][/size][/font][/size][/font][LEFT]

x1=w-o
x2=i-j
for x1=x2
t(i,j)=e

[/left]
[FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2]

حيث اننى اريد تعديل قيمة النقط التى تحقق الشرط i-j=w-o

فقط دونا عن بقية النقط الاخرى…ولكن البرنامج يكون رده يتغيير كافة العناصر التى تشتمل عليها قيمة i,j التى يسبقها

هل من مساعدةفى كيفية جعل البرنامج يغير قيمة هذة النقط فقط

وشكرا

[/size][/font][/size][/font][/size][/font][/size][/font]


#2

يرجى ارسال قيم المتغيرات الموجودة فى البرنامج


(system) #3

الحقيقة المتغيرات تتغير بحسب الادخال…ولكن بشكل عام

[LEFT]c=input('deltax ')
d=input('deltay ')
B = c/d
width=input('width of the plate is ')
length=input('length of the plate is ')
m=width/c
n=length/d[/left]

 
[LEFT]o=((m+1)*(n+1))-4[/left]

 
[LEFT]w=o-(((m-1)+(n-1))*2)[/left]

 
[LEFT]k=input('fixed tempreture at the top of the plate is ')
l=input('fixed tempreture at the bottom of the plate is ')
e=input('fixed tempreture at the left side of the plate is ')
r=input('fixed tempreture at the right side of the plate is ')[/left]

[SIZE=2][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2][FONT=Courier New][SIZE=2][FONT=Courier New]

[/font][/size][/font][/size][/font][/size][/font][/size][/font][/size][/font][/size]


#4

أعتقد انه من المفروض استخدام if لعمل الشرط بدلا من

for x1=x2
t(i,j)=e
end

(system) #5

لقد جربت التغيير من for loop الى if loop ولكن كانت النتيحة

Error: The expression to the left of the equals sign is not a valid target for an assignment.

وبمراجعة الخطا تبين ان if لا تقبل اى علاقة عباة عن تساوى عنصرين معا وانما لابد ان تكون < او > او ما الى ذلك فقط …هل من حل اخر

:slight_smile:


#6

استخدام if كما يلى

    if x1==x2 
        t(i,j)=e 
    end