查看: 85|回复: 2|关注: 0
打印 上一主题 下一主题

[已解决] 定义变量应该放在哪里?

[复制链接]

新手

7 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
本帖最后由 岁月之声亦如歌 于 2019-9-21 14:54 编辑
  1. function [basicindex,basicsol,basicfeasiblesol,optimalsol] = basicsolution(A,b,C)
  2. %输入线性规划问题的系数矩阵A、资源向量b、价值向量C
  3. %输出:
  4. %basicindex:基变量(基解)
  5. %basicsol:基解
  6. %basicfeasiblesol:基可行解
  7. %optimalsol:最优解
  8. %基可行解、最优解最后一列为目标函数值
  9. %rank(A)=行数

  10. [m,n]=size(A);
  11. base0=nchoosek(1:n,m);
  12. k=size(base0,1);
  13. p=0;

  14. for tt=1:k
  15. ? ? index=base0(tt,:);
  16. ? ? base00=A(:,index);
  17. ? ? basicsol_0=zeros(1,n);
  18. ? ? if det(base00)~=0
  19. ? ?? ???basicindex(p+1,:)=index;
  20. ? ?? ???basicvar=base00\b;
  21. ? ?? ???basicsol_0(index)=basicvar;
  22. ? ?? ???basicsol(p+1,:)=basicsol_0;%基解
  23. ? ?? ???p=p+1;
  24. ? ? end
  25. end
  26. [a,d]=find(basicsol<0);
  27. basicfeasiblesol=basicsol;
  28. basicfeasiblesol(a,:)=[];
  29. z=basicfeasiblesol*C';
  30. basicfeasiblesol=[basicfeasiblesol,z];%基可行解,最后一列为对应的目标函数值

  31. vl= z==max(z);
  32. optimalsol=basicfeasiblesol(vl,:);%
  33. ? ?
  34. end


复制代码


>> basicsolution
错误使用 basicsolution (line 11)
输入参数的数目不足。

请问我的A,b,C应该放在哪个位置定义?

因为我尝试将A放在最上面,以这样的代码(我也不知道这样定义一个矩阵对不对(T_T)):
A=[1 2 1 0 0;4 0 0 1 0;0 4 0 0 1]
然后出现了:

>> basicsolution(A, b, C)
未定义函数或变量 'A'。

求助各位大大~拜托了<( _ _ )>

MATLAB 基础讨论
版块优秀回答者

入门

284 麦片

财富积分


50500


0

主题

121

帖子

18

最佳答案
  • 关注者: 2
2#
发表于 3?天前 | 只看该作者 |此回复为最佳答案
在另一个程序中定义A, b, C三个变量,然后调用函数 basicsolution,另外该调用函数似乎有错,检查一下

新手

7 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
3#
?楼主| 发表于 前天?19:45 | 只看该作者
20141303 发表于 2019-9-21 15:25
在另一个程序中定义A, b, C三个变量,然后调用函数 basicsolution,另外该调用函数似乎有错,检查一下 ...

谢谢大大~应该是没有错的啦~直接就在这个程序的工作区输入AbC变量,然后运行:
>> [index x y z]=basicsolution(A,b,C)
出错可能是输入的向量长度不合适吧
再次感谢大大O(∩_∩)O
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表