PDA

View Full Version : سوال: سوال در مورد کار با ماتریس ها



en-keramat
سه شنبه 08 فروردین 1391, 17:48 عصر
من یه ماتریس 10*10 در VB تعریف کردم ، حالا می خواستم تمامی سطرهای هر ستون از ماتریس را در یک متغییر بریزم ، چطوری باید این کار بکنم ؟؟



Dim i, j As Short
For i = 0 To 9
For j = 0 To 9
( B(i, j) = 2 * Rnd(1
Next j
Next i

Hybrid
سه شنبه 08 فروردین 1391, 20:33 عصر
سلام ، سوالت رو خوب بپرس عزیز ، یک ماتریس 10 *10 تعریف کردین بعد میخواین اطلاعات هر ستون رو داخل یک متغیر بریزین یعنی چی؟؟؟

یا میخواین اطلاعات هر ستون رو داخل یک آرایه قرار بدین؟

hakim22
سه شنبه 08 فروردین 1391, 21:07 عصر
خب باید یک آرایه ی یک بعدی تعریف کنید و با یک حلقه که i اون ثابته و j هاش از به شماره اندیس ها داخل یک حلقه تغییر می کنند استفاده کنید

en-keramat
سه شنبه 08 فروردین 1391, 22:46 عصر
سلام ، سوالت رو خوب بپرس عزیز ، یک ماتریس 10 *10 تعریف کردین بعد میخواین اطلاعات هر ستون رو داخل یک متغیر بریزین یعنی چی؟؟؟

یا میخواین اطلاعات هر ستون رو داخل یک آرایه قرار بدین؟

در واقع من می خوام تمام درایه های هر ستون از ماتریس را در یک متغیر ( یا ارایه) که میشه گفت یک متغیر n*1 در اینجا متغیری با ابعاد 10 سطر و یک ستون هستش فرار بدم، توی Matlab دستوری برای این کار هست که من میخواستم تقریبا عملکرد همین تابع را داشته باشم


X=point(:,2);
Y=point(:,3);
Z=point(:,4);

en-keramat
سه شنبه 08 فروردین 1391, 22:47 عصر
خب باید یک آرایه ی یک بعدی تعریف کنید و با یک حلقه که i اون ثابته و j هاش از به شماره اندیس ها داخل یک حلقه تغییر می کنند استفاده کنید

میشه بیشتر توضیح بدهید

Hybrid
سه شنبه 08 فروردین 1391, 23:26 عصر
میتونین در مورد نحوه ی درست کردن ماتریس در پروژتون توضیحی بدین ، یعنی چطور ماتریس رو درست میکنین و مقایر رو میگیرین ، ماتریس رو داخل یک label نمایش میدین؟؟یا از طریق Console ؟؟؟

en-keramat
سه شنبه 08 فروردین 1391, 23:54 عصر
میتونین در مورد نحوه ی درست کردن ماتریس در پروژتون توضیحی بدین ، یعنی چطور ماتریس رو درست میکنین و مقایر رو میگیرین ، ماتریس رو داخل یک label نمایش میدین؟؟یا از طریق Console ؟؟؟

من برنامه ای تو زمینه رشته تحصصی ام ، که بیشتر مربوط به بحث پردازش تصویر میشه تو Matlab نوشتم و که دارم تو VB باز نویسی می کنم ، تو پروژه ای که دارم مینوسم ورودی ماتریس از فایل های مختصاتی (XYZ) ، عکس و ماتریس های که تو کد برنامه تعریف میشن هستش . برای تعریف کردن ماتریس ثابت داخل کد برنامه :


Dim A(5, 5) As Double 'defines a matrix A with dimensions (5x5)
'Assign some values to matrix A and B
A(0, 0) = 1 : A(0, 1) = 2 : A(0, 2) = 3 : A(0, 3) = 4 : A(0, 4) = 15
A(1, 0) = 5 : A(1, 1) = 6 : A(1, 2) = 7 : A(1, 3) = 8 : A(1, 4) = 15
A(2, 0) = 9 : A(2, 1) = 10 : A(2, 2) = 1 : A(2, 3) = 12 : A(2, 4) = 15
A(3, 0) = 13 : A(3, 1) = -14 : A(3, 2) = 15 : A(3, 3) = 16 : A(3, 4) = 15
A(4, 0) = 5 : A(4, 1) = 9 : A(4, 2) = 0 : A(4, 3) = -2 : A(4, 4) = 15

یا

Dim R(3, 3) As Double 'defines a matrix R
'Assign some values to matrix R
R(0, 0) = (Cos(kappa) * Cos(phi))
R(0, 1) = (Cos(kappa) * Sin(phi) * Sin(omega) + Sin(kappa) * Cos(omega))
R(0, 2) = (((-Cos(kappa)) * Sin(phi) * Cos(omega)) + (Sin(kappa) * Sin(omega)))
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''''
R(1, 0) = (-Sin(kappa) * Cos(phi))
R(1, 1) = (((-Sin(kappa)) * Sin(phi) * Sin(omega)) + (Cos(kappa) * Cos(omega)))
R(1, 2) = (Sin(kappa) * Sin(phi) * Cos(omega) + Cos(kappa) * Sin(omega))
'''''''''''''''''''''''''''''''''''''''''''''''''' '''''''''''''''
R(2, 0) = Sin(phi)
R(2, 1) = (-Cos(phi)) * Sin(omega)
R(2, 2) = Cos(phi) * Cos(omega)
'''''''''''''''''''''''''''''''''''''''''''''''''' ''''''''''''


چون خروجی برنامه که میخوام بنویسم یه فایل مختصاتی بسیار بزرگ هستش (n سطر ، 6 ستون ) میخوام بصورت یه فایل متنی .txt ذخیره اش کنم .

hakim22
چهارشنبه 09 فروردین 1391, 02:50 صبح
فکر کنم باید اینطوری باشه :


Dim points(9, 2) As Integer

Dim x(9), y(9), z(9) As Integer
For i As Integer = 0 To 9
x(i) = points(i, 0)
Next


ولی اگر کار با متلب باشه میتونی خیلی از توابع رو از همون متلب مستقیم بیاری توی VB
ولی نیاز به یک برنامه ی 120 مگاباتی برای اجراش همیشه هست
یا خیلی از مقادیر متغیرهای متلب با یک سری از فرمانهایی که خود متلب ساخته قابل تبدیل به متغیرهای VB هست. که دردسر این همه باز نویسی کد رو حذف میکنه

en-keramat
چهارشنبه 09 فروردین 1391, 19:56 عصر
ممنون از زاهنمایتون
یعنی دقیقا میشه توابع matlab تو VB استفاده کرد ؟ بعد سرعت اجرای برنامه ها مثل Matlab نمیشه ؟ از چه برنامه ای ؟
از دستور Mex استفاده کردم که کدهای matlab به C++ تبدیل میکنه ولی بصورت درست این کارو انجام نمیده

hakim22
چهارشنبه 09 فروردین 1391, 23:05 عصر
میشه توابعی که در متلب طراحی کردید رو به صورت کامپوننت دربیارید و در وی بی به صورت Reference اضافه کنید
بعد اون تابع در وی بی قابل استفاده است. یک سری توابع برای تبدیل انواع متغیرهای متلب به متغیرهای وی بی کنارش لود میشه
که مثل ctype و cint و ... عمل می کنه.
باید از قسمت deployment استفاده کنید
در ضمن نیاز به یک فایل مترجم متلب با حجم تقریبی 120 مگابایت کنار برنامه اصلی خواهد بود.
هر کسی بخواد برنامه ی نوشته شده در وی بی رو اجرا کنه ابتدا باید مترجم رو نصب کنه ، غیر از این مشکلی نداره