۱۳۹۳/۰۹/۱۵, ۱۰:۵۸ ب.ظ
(۱۳۹۳/۰۹/۱۵, ۰۵:۱۸ ب.ظ)'admin' نوشته: حالت یک عنصری و حالت دو عنصری را برایتان نوشتم تا از حالت دو عنصری الهام گرفته و خودتان حالت سه عنصری را بنویسید.
کدهای متلب :
کد پیاچپی:clear all
close all
clc
A = [1; 2; 3; 4 ; 5; 6]
% one element
A_lenghth=length(A)
for nn=1:A_lenghth
eval(['A_one_element_', num2str(nn) , ' = ' , num2str(A(nn))]);
end
% two element
A_lenghth=length(A)
number=0;
used_indexes=;
for nn=1:A_lenghth
for mm=1:A_lenghth
if(nn~=mm) % not equal
used_indexes_size=size(used_indexes);
is_repeated_or_not=0;
for gg=1:used_indexes_size(1)
if(nn==used_indexes(gg,2) && mm==used_indexes(gg,1)) % check is repeated or not
is_repeated_or_not=1;
end
end
if(is_repeated_or_not==0)
number=number+1;
used_indexes(number,1)=nn;
used_indexes(number,2)=mm;
eval(['A_two_element_', num2str(number) , ' = [' , num2str(A(nn)), ',', num2str(A(mm)), ']']);
end
end
end
end
number
نتیجه اجرای کد متلب بالا :
کد پیاچپی:A =
1
2
3
4
5
6
A_lenghth =
6
A_one_element_1 =
1
A_one_element_2 =
2
A_one_element_3 =
3
A_one_element_4 =
4
A_one_element_5 =
5
A_one_element_6 =
6
A_lenghth =
6
A_two_element_1 =
1 2
A_two_element_2 =
1 3
A_two_element_3 =
1 4
A_two_element_4 =
1 5
A_two_element_5 =
1 6
A_two_element_6 =
2 3
A_two_element_7 =
2 4
A_two_element_8 =
2 5
A_two_element_9 =
2 6
A_two_element_10 =
3 4
A_two_element_11 =
3 5
A_two_element_12 =
3 6
A_two_element_13 =
4 5
A_two_element_14 =
4 6
A_two_element_15 =
5 6
number =
15
دقت کنید که چگونه با ذخیره کردن index مربوط به حالت های ساخته شده، چک می کنیم که ماتریسی برای حالت های تکراری ساخته نشود (برای حالت سه تایی، باید دو شرط چک شود، زیرا به جای دو تا index این بار سه تا index داریم). تعداد هم برابر 15 تا شده است (البته خودتان هم نتیجه را تست کنید).
سلام خیلی ممنون
خیلی خوبه،لطف کردید
من سعی میکنم که گسترشش بدم