这个没必要用find。
用矩阵索引就行,所谓索引就是指下标,这里可以用
a1=a(1,10:15)%第一行,第10至15列,给a1
如果有好几行,相应的改变就行,如果整行或者整列都要索引,用‘:’
a=magic(3)
a =
8 1 6
3 5 7
4 9 2
>> a1=a(2,2:3)
a1 =
5 7
>> a1=a(3,:)
a1 =
4 9 2
temp.m文件中写如下函数:
function
array=temp()
array=[1,2,3,4,5];
end
array就是函数的返回值,你给它赋什么值,它就返回什么。
之后在command调用即可如
>>
temp
ans
=
1
2
3
4
5
也可以这样调用
>>arr=temp;
只是把函数的返回值保存在变量arr中。
b=a(10:15);
提出(0-1)规划问题:变量只取0或者1
函数:
function f=GZhengshuGuihua(X)
f=3*X(1)-2*X(2)+5*X(3);
约束条件:(X(1)+2*X(2)-X(3)<=2)&&(X(1)+4*X(2)+X(3)<=4)
如何找到X(1)到X(3)的解呢
A=0.9;T=99;TF=2;X1Iemp=0;X2Iemp=0;X3Iemp=0;FvalIni=-100;FvalTemp=FvalIni;FvalBest=FvalIni;
while T>=TF
X=round(rand(1,3));
FvalTemp=GZhengshuGuihua(X);
if (X(1)+2*X(2)-X(3)<=2)&&(X(1)+4*X(2)+X(3)<=4)
if (FvalTemp>=FvalBest)
FvalBest=FvalTemp;
X1Temp=X(1);X2Temp=X(2);X3Temp=X(3);
end
end
T=T*A;
end
X1Best=X1Temp;X2Best=X2Temp;X3Best=X3Temp;
[FvalBest,X1Best,X2Best,X3Best]