قلم

وبلاگ امیرحسین حاجی حسینی

قلم

وبلاگ امیرحسین حاجی حسینی

قلم

طبقه بندی موضوعی

دوشنبه, ۳۰ شهریور ۱۳۹۴، ۱۱:۴۶ ب.ظ

۶

فرض کنید یک ماتریس داریم که هر ستون آن بیانگر اطلاعات مربوط به یک کلاس است. ما یک سطر به ابتدای این ماتریس اضافه می کنیم که مشخص می کند هر ستون متعلق به کدام کلاس است (لیبل گذاری). حال می خواهیم با استفاده از یک حلقه for، اطلاعات مربوط به هر کلاس را در ماتریس های جداگانه و با نام های مختلف مانند class1، class2، و ... نام گذاری کنیم. 

.

 

مشکلی که وجود دارد این است که چگونه نام متغیرها را در هر بار اجرای حلقه تغییر دهیم؟

.

با استفاده از کد زیر می توان این مشکل را حل کرد. در این مثال ماتریس a را یک ماتریس با 16 سطر و 10 ستون در نظر گرفته ایم که این ماتریس تعداد 10 دسته اطلاعات را که متعلق به 6 کلاس هستند، مشخص می کند.

clear
clc
a=rand(16,10);
b = [1 2 3 2 1 4 5 2 6 3;a];
for i=1:6
     label = b(1,:)==i;
     temp = a(:,label);
     eval(['class', num2str(i) , ' =temp;']);
end

نظرات  (۶)

سلام
چطوری میشه یه رشته رو به نام متغیر تبدیل کرد؟؟؟؟

clc;clear all

stepsize=0.01;

for e=1:20
    
r=2*rand;
i=ceil(r);

w=[i i];
plot([(e-1)*stepsize:stepsize:e*stepsize],w,'black')
ylim([0 3]);hold on

end


سلام. چطوری میتونم نموداری که برنامه به ما میده رو به صورت پیوسته رسم کنم؟ می خوام این تیکه هایی که رسم شده به هم بچسبن. با تشکر
پاسخ:
سلام

clc;clear all

stepsize=0.01;
x = [];
w = [];
for e=1:20
    
r=2*rand;
i=ceil(r);

w=[w i i];
x = [x (e-1)*stepsize:stepsize:e*stepsize;];

end
plot(x,w,'-k')
ylim([0 3]);hold on

                                                                                                      for d=1:50
                                                                                                  ;r=4*rand
                                                                                                     (i=ceil(r
                                                                                                                end

سلام. من اگه بخوام مقادیر i بدست اومده تو حلقه for بالا رو تو یک بردار (50*1) قرار بدم باید چکار کنم؟؟؟
پاسخ:
سلام

for d=1:50
 r=4*rand(1);
i(d)=ceil(r);
end
   

دستتون درد نکه کمک بزرگی کردید
پاسخ:
خواهش می کنم
منظورم اینه که اگه بخوایم مقدار A رو با توجه مقدار i تو متغیرهای A1,A2 ذخیره کنیم چیکار میشه کرد؟


پاسخ:
for i = 1:2
if i==1
    temp = [1 2;0 4]; 
eval(['A', num2str(i) , ' =temp;']);
elseif i==2
temp=[5 1;7 3];
eval(['A', num2str(i) , ' =temp;']);
end
end
for i=1:2
if i==1
;[ A=[1 2;0 4

else if i==2
;[ A=[5 1;7 3

end
end
end


A_new= 4.*A1+5.*A2
چجور میشه متغیرهای A1,A2 رو که همون مقادیر A برای حالت های i=1 و i=2 هستند رو تعریف کنیم؟
پاسخ:
درست متوجه نشدم هدف برنامه چیه، لطفا بیشتر توضیح بدید.

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی