انجمن سایت کلیدستان



یکی منو راهنمایی کنهزمان کنونی: ۱۳۹۵/۰۹/۲۰، ۰۱:۴۴ ق.ظ
کاربران در حال بازدید این موضوع: 1 مهمان
نویسنده: saeedo
آخرین ارسال: saeedo
پاسخ 3
بازدید 1316

رتبه موضوع:
  • 1 رای - 3 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
یکی منو راهنمایی کنه

یکی منو راهنمایی کنه

#1
من در متلب یه برنامه نوشتم که خروجیش یک ماتریس 3*3 میباشد
مثلا جواب میده

 2 3 5
1 6 9
9 5 7

اگه بخوام به فرم زیر خروجی بده باید چه دستوری بدم :

q=9 w=8 e=8
a=1 s=2 d=3
z=1 x=2 c=3

منتظر کمکتون هستم 
ممنون
 
پاسخ

یکی منو راهنمایی کنه

#2
سلام.
براتون یک مثال ساده می زنم تا شیوه کلی کدنویسی را متوجه بشوید :

کد:
clear all
close all
clc

A=[1 3; 2 4];
B=['a' 'c'; 'b' 'd'];
for nn=1:4
    string=strcat(B(nn),'=',num2str(A(nn)));
    disp(string);
end

سه خط اول کدها، برای عدم تداخل برنامه فعلی با برنامه های قبلی اجرا شده در نرم افزار متلب می باشد. دستور strcat برای اتصال دو یا چند رشته (string) به هم، به کار می رود و دستور disp برای نمایش یک رشته در خروجی می باشد.
نتیجه اجرای کد متلب بالا :

کد:
a=1
b=2
c=3
d=4
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

یکی منو راهنمایی کنه

#3
با تشکر از کمکتون
میخواستم بگم توی استفاده از کد بالا به یه مشکل خوردم
خروجی تابع A اینه: 0.0266   -0.8638   -0.5031
   -0.6209    0.3802   -0.6855
    0.7834    0.3306   -0.5262

خروجی تابع B
l(1)m(1)n(1)
l(2)m(2)n(2)
l(3)m(3)n(3)
حالا وقتی این دو تابع رو به هم متصل میکنم خروجی زیر رو میده:
l=0.026608
l=-0.62093
l=0.78342
(=-0.8638
(=0.38016
(=0.33065
1=-0.50313
2=-0.68552
3=-0.52624

اگه مکنه کد کامل رو میدم یه نگا بهش بندازید 
و راهنماییم کنید
ممنون
اینم کد کامل:


کد:
clear all;
clc;
X = xlsread('input.xlsx',1,'B1');
Y = xlsread('input.xlsx',1,'B2');
Z = xlsread('input.xlsx',1,'B3');
TXY = xlsread('input.xlsx',1,'B4');
TXZ = xlsread('input.xlsx',1,'B5');
TYZ = xlsread('input.xlsx',1,'B6');
I1=X+Y+Z;
I2=X*Y+X*Z+Y*Z-TXY^2-TXZ^2-TYZ^2;
I4=[X TXY TXZ;TXY Y TYZ;TXZ TYZ Z];
I3=det(I4);
a=I1;
b=I2;
c=I3;
p=[1 -a b -c];
r=roots(p);
k=r(1);
l=r(2);
m=r(3);
w=[k l m];
Q=sort(w,'descend')
for i=1:3
a(i)=det([(Y-Q(i)) TYZ ; TYZ (Z-Q(i)) ]);
b(i)=-det([TXY TYZ ;TXZ (Z-Q(i)) ]);
c(i)=det([TXY (Y-Q(i));TXZ TYZ ]);
k(i)=1/((a(i))^2+(b(i))^2+(c(i))^2)^.5;
ll(i)=a(i)*k(i);
mm(i)=b(i)*k(i);
nn(i)=c(i)*k(i);
aaaa(i)=(ll(i))^2+(mm(i))^2+(nn(i))^2;
end
F=[ll(1) mm(1) nn(1);ll(2) mm(2) nn(2);ll(3) mm(3) nn(3)]
G=['l(1)' 'm(1)' 'n(1)';'l(2)' 'm(2)' 'n(2)';'l(3)' 'm(3)' 'n(3)']
for nnn=1:9
string=strcat(G(nnn),'=',num2str((F(nnn))));
disp(string);
end
clear all;
clc;
X = xlsread('input.xlsx',1,'B1');
Y = xlsread('input.xlsx',1,'B2');
Z = xlsread('input.xlsx',1,'B3');
TXY = xlsread('input.xlsx',1,'B4');
TXZ = xlsread('input.xlsx',1,'B5');
TYZ = xlsread('input.xlsx',1,'B6');
I1=X+Y+Z;
I2=X*Y+X*Z+Y*Z-TXY^2-TXZ^2-TYZ^2;
I4=[X TXY TXZ;TXY Y TYZ;TXZ TYZ Z];
I3=det(I4);
a=I1;
b=I2;
c=I3;
p=[1 -a b -c];
r=roots(p);
k=r(1);
l=r(2);
m=r(3);
w=[k l m];
Q=sort(w,'descend')
for i=1:3
a(i)=det([(Y-Q(i)) TYZ ; TYZ (Z-Q(i)) ]);
b(i)=-det([TXY TYZ ;TXZ (Z-Q(i)) ]);
c(i)=det([TXY (Y-Q(i));TXZ TYZ ]);
k(i)=1/((a(i))^2+(b(i))^2+(c(i))^2)^.5;
ll(i)=a(i)*k(i);
mm(i)=b(i)*k(i);
nn(i)=c(i)*k(i);
aaaa(i)=(ll(i))^2+(mm(i))^2+(nn(i))^2;
end
F=[ll(1) mm(1) nn(1);ll(2) mm(2) nn(2);ll(3) mm(3) nn(3)]
G=['l(1)' 'm(1)' 'n(1)';'l(2)' 'm(2)' 'n(2)';'l(3)' 'm(3)' 'n(3)']
for nnn=1:9
string=strcat(G(nnn),'=',num2str((F(nnn))));
disp(string);
end


که باید دو تابع F و G رو به هم متصل کنه
پاسخ


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان

آخرین کلیدهای غیررایگان

شما هم می توانید کلیدهای غیررایگان منتشر کنید (بیشتر بدانید)