-
نقل قول: حل تابع چند جمله ای
نقل قول:
نوشته شده توسط
rahnema1
اگه نمودار به صورت عکس باشه، عکس را می بری داخل یه نرم افزار مثل paint یا فوتوشاپ. قسمتهای زیر منحنی را مثلا قرمز می کنی و بقیه را یک رنگ دیگه
بعد توی متلب یا هر جای دیگه هیستوگرام عکس را به دست میاری. تعداد پیکسلهای قرمز برابر خواهد بود با مساحت زیر منحنی . البته فراموش نکنید که ابعاد پیکسل را حتما در یک ضریب ضرب کنید تا به اندازه واحد محورهای منحنی بشه
پردازش تصویر کار نکردم. تعداد پیکسل عکس چطوری بدست میاد؟
دستورش چیه؟
-
نقل قول: حل تابع چند جمله ای
این یک نمونه برنامه
ضریب طول و عرض هم میاد مقیاس عکس را با نمودار متناسب می کنه
http://www.sharefile.ir/uploads/1406847690.zip
-
نقل قول: حل تابع چند جمله ای
نقل قول:
نوشته شده توسط
rahnema1
ممنونم. عالی بود.
من نمیخواستم فقط برنامه شو داشته باشم. میخواستم یاد بگیرم. الآن من متوجه نشدم ضریب طول و عرض از کجا اومد؟
این پیکسل رو مشخص میکنه؟
nemoodar2(:,:,1)
چطوری تشخیص میده 1 برای قرمزه یا 2 برای سبز؟
چرا مساحت قسمت های رنگی رو که جدا حساب میکنه بصورت ماتریسی نشون میده؟
-
نقل قول: حل تابع چند جمله ای
میشه یکمی روی این تصویر کار کنیم تا من مقدمات پردازش تصویر هم یاد بگیرم؟
چطوری میشه فهمید از نقطه ی ماکزیمم نمودار اصلی تا محور افقی چند سانتی متر هست؟
یا میشه تشخیص داد معادله ی این نمودار چیه؟
-
نقل قول: حل تابع چند جمله ای
پردازش تصویر که نمیخواد. توی فوتو شاپ یا یه چیز دیگه مثلا اندازه بگیر چند تا پیکسل از صفر تا 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.
-
نقل قول: حل تابع چند جمله ای
نقل قول:
نوشته شده توسط
coronaa
از توی متلب نمیشه تعداد پیکسل عکس رو بدست آورد؟
توی متلب نمیدونم
masahateghermez= sum(sum(nemoodar2(:,:,1)))* zaribetool*zaribearz
masahatesabz= sum(sum(nemoodar2(:,:,2)))* zaribetool*zaribearz
masahateabi= sum(sum(nemoodar2(:,:,3)))* zaribetool*zaribearz
-
نقل قول: حل تابع چند جمله ای
نقل قول:
نوشته شده توسط
rahnema1
توی متلب نمیدونم
masahateghermez= sum(sum(nemoodar2(:,:,1)))* zaribetool*zaribearz
masahatesabz= sum(sum(nemoodar2(:,:,2)))* zaribetool*zaribearz
masahateabi= sum(sum(nemoodar2(:,:,3)))* zaribetool*zaribearz
شما توی octave جواب میگیری؟
پیغام :
??? Subscript indices must either be real positive integers or
logicals.
Error in ==> nemood2 at 7
masahateghermez= sum(sum(nemoodar2(:,:,1)))* zaribetool*zaribearz
-
نقل قول: حل تابع چند جمله ای
نقل قول:
نوشته شده توسط
coronaa
شما توی octave جواب میگیری؟
پیغام :
??? Subscript indices must either be real positive integers or
logicals.
Error in ==> nemood2 at 7
masahateghermez= sum(sum(nemoodar2(:,:,1)))* zaribetool*zaribearz
توی اکتاو که من کار می کنم یک ماتریس سه بعدی دارم که می خوام مجموع مقادیر موجود در هر بعدش را بدست بیارم. توی اکتاو اینجور میشه باید متلب هم همین طور باشه
-
نقل قول: حل تابع چند جمله ای
این خط خطا میده :
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);
-
نقل قول: حل تابع چند جمله ای
نقل قول:
نوشته شده توسط
rahnema1
به جای اون خط این دو تا را بذار ( متلب شما قدیمیه)
I=imread('nemood3.bmp');
I=I(:,:,1);
ans =
431.6148 137.2873 57.2829 -894.5778 -326.6813 -230.8940
??? Subscript indices must either be real positive integers or
logicals.
Error in ==> sets11 at 26
xha=sum(I);
-
نقل قول: حل تابع چند جمله ای
ببین متلب شما قدیمیه
دستور 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.
-
نقل قول: حل تابع چند جمله ای
hdk vh hljphk ;k
sum(I,1)
-
نقل قول: حل تابع چند جمله ای
نقل قول:
نوشته شده توسط
rahnema1
hdk vh hljphk ;k
sum(I,1)
باز همون پیغام قبلی رو میده.
nemood3 کدوم عکسه؟ رنگی یا اصلی؟
-
نقل قول: حل تابع چند جمله ای
مثل این فایل انجام میدم ولی نمیشه!http://uplood.ir/41x3
-
نقل قول: حل تابع چند جمله ای
آقا من معذرت میخوام. سیستمم قاطی کرده بود.
متلب رو دوباره بستم و باز کردم درست شد.
ببخشید.
الآن جواب داد.
-
نقل قول: حل تابع چند جمله ای
-
نقل قول: حل تابع چند جمله ای
ولی خب برنامه قبلی که جواب بهتری میده.
-
نقل قول: حل تابع چند جمله ای
مهندس یه مشکلی پیش اومد!
این کدی که شما برای فی نوشتین برای هر تعداد ائتلاف جواب میده و این خیلی خوبه. ولی اون برنامه های آماده که از سایت گرفتم فقط برای ائتلاف های 3 تایی و 4 تایی جواب میده.
میشه داخلش رو دستکاری کرد که واسه هر تعداد جواب بده؟
-
نقل قول: حل تابع چند جمله ای
نقل قول:
نوشته شده توسط
coronaa
مهندس یه مشکلی پیش اومد!
این کدی که شما برای فی نوشتین برای هر تعداد ائتلاف جواب میده و این خیلی خوبه. ولی اون برنامه های آماده که از سایت گرفتم فقط برای ائتلاف های 3 تایی و 4 تایی جواب میده.
میشه داخلش رو دستکاری کرد که واسه هر تعداد جواب بده؟
یه نگاهی به کد انداختم
متاسفانه طوری کد را نوشته که فقط به درد همین چند گزینه می خوره یعنی اومده تک تک مقادیر را جدا جدا حساب کرده بدون اینکه بخواد مثلا از حلقه یا تابع و امثال اینها استفاده کنه محاسبه با دست را توی متلب قرار داده
درست کردنش فکر کنم دردسر زیادی داشته باشه ضمن اینکه اصلا توی اکتاو اون nucleolus را اجرا کردم و تعدادی تابع را نمیشناخت و با متلب فرق می کرد
-
نقل قول: حل تابع چند جمله ای
مهندس من یه قسمت برنامه شرطی گذاشتم. میخوام بگم اگه این مقدار بود این عمل انجام بشه وگرنه دوباره سوال بپرس(یعنی بیاد اول برنامه).
باید return بذارم؟ و کجای برنامه باید بذارم؟
-
نقل قول: حل تابع چند جمله ای
نقل قول:
نوشته شده توسط
coronaa
مهندس من یه قسمت برنامه شرطی گذاشتم. میخوام بگم اگه این مقدار بود این عمل انجام بشه وگرنه دوباره سوال بپرس(یعنی بیاد اول برنامه).
باید return بذارم؟ و کجای برنامه باید بذارم؟
شما واسه این کار می تونید از حلقه مثل while استفاده کنید
-
نقل قول: حل تابع چند جمله ای
نقل قول:
نوشته شده توسط
rahnema1
شما واسه این کار می تونید از حلقه مثل while استفاده کنید
یعنی ifها رو بردارم بجاش while بذارم؟
-
نقل قول: حل تابع چند جمله ای
نقل قول:
نوشته شده توسط
coronaa
یعنی ifها رو بردارم بجاش while بذارم؟
چون می خواهی بر گردی اول همه کد را داخل while بذار
-
نقل قول: حل تابع چند جمله ای
توی یه برنامه ای برای این عبارت خطا میده. دلیلش چیه؟
[~, n]=log2(N);
روی علامت ~ خطا میده. متلب نمیشناستش؟
-
نقل قول: حل تابع چند جمله ای
نقل قول:
نوشته شده توسط
coronaa
توی یه برنامه ای برای این عبارت خطا میده. دلیلش چیه؟
[~, n]=log2(N);
روی علامت ~ خطا میده. متلب نمیشناستش؟
فکرکنم به خاطر اینه که نسخه متلب شما پایینه. یه ورزن جدیدتر احتنالا درست کار کنه
-
نقل قول: حل تابع چند جمله ای
نقل قول:
نوشته شده توسط
rahnema1
فکرکنم به خاطر اینه که نسخه متلب شما پایینه. یه ورزن جدیدتر احتنالا درست کار کنه
بابت اون لینکها ممنونم. راستش همین سوال منم از همون برنامه های سایت بود که خودم قبلن دانلود کرده بودم که چنین مشکلی وجود داره.
شما قبلن این کد رو برای من نوشته بودید و علامت ~ داشت که بعداً تغییر دادین درست شد. نمیشه اینو هم تغییر داد؟
کد قبلی :
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 بازیکن باشه!
-
نقل قول: حل تابع چند جمله ای
نقل قول:
نوشته شده توسط
coronaa
بابت اون لینکها ممنونم. راستش همین سوال منم از همون برنامه های سایت بود که خودم قبلن دانلود کرده بودم که چنین مشکلی وجود داره.
شما قبلن این کد رو برای من نوشته بودید و علامت ~ داشت که بعداً تغییر دادین درست شد. نمیشه اینو هم تغییر داد؟
کد قبلی :
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
مرسی مهندس. فعلن بجای ~ متغیر دیگه ای گذاشتم و خطا نمیده. اونوخت تاثیری در نتیجه نداره؟
یه سوال دیگه :
متلب من تابع narginchk رو نمیشناسه. خودم اگه بخوام معرفیش کنم باید اینطوری بنویسم؟
narginchk=@(xxx) nargoutchk(xxx);
سوال اول: توی نتیجه تاثیر نداره
سوال دوم
این تابعیه که توی سورس اکتاو بود
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
-
نقل قول: حل تابع چند جمله ای
نقل قول:
نوشته شده توسط
rahnema1
این تابعیه که توی سورس اکتاو بود
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
بعضی از کاراکترهای اوکتاو با متلب همخونی نداره مثل ! و ...
دستوری که خودم دادم ظاهرن میشناسه ولی الآن توی برنامه
narginchk(1,5)
داره که خطایی که الآن میده اینه که تعداد آرگومانهای ورودی خیلی زیاده.
-
نقل قول: حل تابع چند جمله ای
تمام ! ها را با ~ ریپلیس کن
-
نقل قول: حل تابع چند جمله ای
من دارم تابع CorePlot رو بررسی میکنم. میتونی از همون فایل یه نگاه بندازی؟
-
نقل قول: حل تابع چند جمله ای
بعضی دستورها توی اکتاو هم کار نمی کنه
-
نقل قول: حل تابع چند جمله ای
ممنونم. جایگزین کردم حل شد ولی انقدر توابع ناشناس وجود داره که حالا به یه دستور دیگه گیر میده :)