این یک نمونه برنامه
ضریب طول و عرض هم میاد مقیاس عکس را با نمودار متناسب می کنه
http://www.sharefile.ir/uploads/1406847690.zip
ممنونم. عالی بود.
من نمیخواستم فقط برنامه شو داشته باشم. میخواستم یاد بگیرم. الآن من متوجه نشدم ضریب طول و عرض از کجا اومد؟
این پیکسل رو مشخص میکنه؟
nemoodar2(:,:,1)
چطوری تشخیص میده 1 برای قرمزه یا 2 برای سبز؟
چرا مساحت قسمت های رنگی رو که جدا حساب میکنه بصورت ماتریسی نشون میده؟
آخرین ویرایش به وسیله coronaa : پنج شنبه 09 مرداد 1393 در 23:12 عصر
میشه یکمی روی این تصویر کار کنیم تا من مقدمات پردازش تصویر هم یاد بگیرم؟
چطوری میشه فهمید از نقطه ی ماکزیمم نمودار اصلی تا محور افقی چند سانتی متر هست؟
یا میشه تشخیص داد معادله ی این نمودار چیه؟
پردازش تصویر که نمیخواد. توی فوتو شاپ یا یه چیز دیگه مثلا اندازه بگیر چند تا پیکسل از صفر تا 1600 هست بعد 1600 را بخش بر تعداد پیکسل کن
برای طول هم همین طور 24 را تقسیم بر تعداد پیکسل می کنیم به همین سادگی
اون کد یه اشکال داشت
zaribetool=4.3360;
zaribearz=0.063830;
nemoodar2=imread('nemood2.bmp');
masahateghermez=sum(nemoodar2(:,:,1)(:))*zaribetoo l*zaribearz
masahatesabz=sum(nemoodar2(:,:,2)(:))*zaribetool*z aribearz
masahateabi=sum(nemoodar2(:,:,3)(:))*zaribetool*za ribearz
masahatekol=sum(nemoodar2(:))*zaribetool*zaribearz
اولی قرمز دومی سبز و سومی هم آبی
از توی متلب نمیشه تعداد پیکسل عکس رو بدست آورد؟
یه پیغام خطا هم میده :
??? Error: File: nemood2.m Line: 5 Column: 21
()-indexing must appear last in an index expression.
این خط خطا میده :
Gene(k)+=sum(aa(s(j,:)).*(pi(s(j,:)).^2)+b(s(j,:)) .*pi(s(j,:))+c(s(j,:)));
پیغام :
??? Error: File: sets10.m
The expression to the left of the equals sign is not a valid target
for an assignment.
منظورت از += چیه؟
این خط خطا میده :
I=imread('nemood3.bmp')(:,:,1);
پیغام :
??? Error: File: sets11.m
()-indexing must appear last in an index expression.
نمودار3 همون رنگیه هست؟
به جای اون خط این دو تا را بذار ( متلب شما قدیمیه)
I=imread('nemood3.bmp');
I=I(:,:,1);
ببین متلب شما قدیمیه
دستور sum باید مجموع هر ستون را پیدا کنه
شما میگین I رو جمع بزن. سایز I به این صورته :
ans =
447 499
درسته؟ اینطوری میتونه جمع بزنه؟
همینطوری یه مثال فرض زدم و ماتریس رو جمع نکرد!
>> w=[1 2 3;4 5 6;7 8 9]
w =
1 2 3
4 5 6
7 8 9
>> sum(w)
??? Index exceeds matrix dimensions.
مثل این فایل انجام میدم ولی نمیشه!http://uplood.ir/41x3
آقا من معذرت میخوام. سیستمم قاطی کرده بود.
متلب رو دوباره بستم و باز کردم درست شد.
ببخشید.
الآن جواب داد.
ببخشید تصویر یادم رفته بود
http://www.sharefile.ir/uploads/1406960989.zip
ولی خب برنامه قبلی که جواب بهتری میده.
مهندس یه مشکلی پیش اومد!
این کدی که شما برای فی نوشتین برای هر تعداد ائتلاف جواب میده و این خیلی خوبه. ولی اون برنامه های آماده که از سایت گرفتم فقط برای ائتلاف های 3 تایی و 4 تایی جواب میده.
میشه داخلش رو دستکاری کرد که واسه هر تعداد جواب بده؟
یه نگاهی به کد انداختم
متاسفانه طوری کد را نوشته که فقط به درد همین چند گزینه می خوره یعنی اومده تک تک مقادیر را جدا جدا حساب کرده بدون اینکه بخواد مثلا از حلقه یا تابع و امثال اینها استفاده کنه محاسبه با دست را توی متلب قرار داده
درست کردنش فکر کنم دردسر زیادی داشته باشه ضمن اینکه اصلا توی اکتاو اون nucleolus را اجرا کردم و تعدادی تابع را نمیشناخت و با متلب فرق می کرد
مهندس من یه قسمت برنامه شرطی گذاشتم. میخوام بگم اگه این مقدار بود این عمل انجام بشه وگرنه دوباره سوال بپرس(یعنی بیاد اول برنامه).
باید return بذارم؟ و کجای برنامه باید بذارم؟
توی یه برنامه ای برای این عبارت خطا میده. دلیلش چیه؟
[~, n]=log2(N);
روی علامت ~ خطا میده. متلب نمیشناستش؟
بابت اون لینکها ممنونم. راستش همین سوال منم از همون برنامه های سایت بود که خودم قبلن دانلود کرده بودم که چنین مشکلی وجود داره.
شما قبلن این کد رو برای من نوشته بودید و علامت ~ داشت که بعداً تغییر دادین درست شد. نمیشه اینو هم تغییر داد؟
کد قبلی :
a=rand(70,12);
[~,i1,~]=unique(a(:,1:7),'rows');
[~,i2,~]=unique(a(:,8:12),'rows');
i3=intersect(i1,i2);
i4=i3(randperm(35));
b=a(i4,1:7);
c=a(i4,8:12);
کد اصلاح شده :
a=rand(70,12);
i0=randperm(12);
[ii,i1,jj]=unique(a(:,i0(1:7)),'rows');
[ii,i2,jj]=unique(a(:,i0(8:12)),'rows');
i3=intersect(i1,i2);
i4=randperm(35);
i5=i3(i4);
b=a(i5,i0(1:7));
c=a(i5,i0(8:12));
البته جدا از همه ی این کارها، فکر کنم این فانکشن ها هم برای حداکثر 4 بازیکن باشه!
مرسی مهندس. فعلن بجای ~ متغیر دیگه ای گذاشتم و خطا نمیده. اونوخت تاثیری در نتیجه نداره؟
یه سوال دیگه :
متلب من تابع narginchk رو نمیشناسه. خودم اگه بخوام معرفیش کنم باید اینطوری بنویسم؟
narginchk=@(xxx) nargoutchk(xxx);
آخرین ویرایش به وسیله coronaa : شنبه 18 مرداد 1393 در 13:51 عصر
سوال اول: توی نتیجه تاثیر نداره
سوال دوم
این تابعیه که توی سورس اکتاو بود
function narginchk (minargs, maxargs)
if (nargin != 2)
print_usage;
elseif (!isnumeric (minargs) || !isscalar (minargs))
error ("minargs must be a numeric scalar");
elseif (!isnumeric (maxargs) || !isscalar (maxargs))
error ("maxargs must be a numeric scalar");
elseif (minargs > maxargs)
error ("minargs cannot be larger than maxargs")
end
args = evalin ("caller", "nargin;");
if (args < minargs)
error ("not enough input arguments");
elseif (args > maxargs)
error ("too many input arguments");
end
end
من دارم تابع CorePlot رو بررسی میکنم. میتونی از همون فایل یه نگاه بندازی؟
بعضی دستورها توی اکتاو هم کار نمی کنه
ممنونم. جایگزین کردم حل شد ولی انقدر توابع ناشناس وجود داره که حالا به یه دستور دیگه گیر میده :)