- 积分
- 83
- 注册时间
- 2003-11-14
- 仿真币
-
- 最后登录
- 1970-1-1
|
发表于 2010-10-29 23:30:27
|
显示全部楼层
来自 北京
本帖最后由 bainhome 于 2010-10-30 18:16 编辑
- function [Ind,T,CompareT]=t1x(a,b)
- % a和b必须是4×4的矩阵
- clc;
- % a=round(10*rand(4))
- % b=round(10*rand(4))
- a1=a(:);
- b1=b(:);
- IndRowA=repmat([1:4]',4,1);
- IndColA=sort(repmat([1:4]',4,1));
- IndRowB=IndRowA;
- IndColB=IndColA;
- for ii=1:16
- for jj=1:16
- Data(ii,jj,1)=IndRowA(ii);
- Data(ii,jj,2)=IndColA(ii);
- Data(ii,jj,3)=IndRowB(jj);
- Data(ii,jj,4)=IndColB(jj);
- Data(ii,jj,5)=-a1(ii)-b1(jj);
- end
- end
- Data1=Data(:,:,5);
- [I,J]=find(Data1-min(min(Data1))<eps);
- for ii=1:length(I)
- Ind(ii,:)=[Data(I(ii),J(ii),1),Data(I(ii),J(ii),2),Data(I(ii),J(ii),3),Data(I(ii),J(ii),4)];
- T(ii,:)=[a(Data(I(ii),J(ii),1),Data(I(ii),J(ii),2)),b(Data(I(ii),J(ii),3),Data(I(ii),J(ii),4))];
- end
- Ind; %最小值原矩阵索引
- T; %最小值处a和b的数值
- CompareT=min(min(Data1)); % 最小值数值
复制代码 调用时command windows中输入:- a=round(10*rand(4))
- b=round(10*rand(4))
- [Ind,T,CompareT]=t1x(a,b)
复制代码 答案:- Ind =
- 1 3 4 1
- 2 3 4 1
- 4 3 4 1
- 1 4 4 1
- T =
- 10 10
- 10 10
- 10 10
- 10 10
- CompareT =
- -20
复制代码 总之,估计这就是正确答案之一,函数出入口都做好了,Ind中的顺序是:
ind_a_row,a_col,b_row,b_col] |
评分
-
1
查看全部评分
-
|