function[z,ans]=fenpei(marix)

%///

%俞入效率矩阵marix为方阵;

%若效率矩阵中有M则用一充分大的数代替;

%输出z为最优解,ans为最优分配矩阵;

%//

a=m arix;

b=a;

%确定矩阵维数

s=size(a);

%确定矩阵行最小值,进行行减

ml=min(a);

For i=1:s

a(i,:)=a(i,:)-ml(i);

end

%确定矩阵列最小值,进行列诚

mr=min(a);

for j=1:s

a(:,j)=a(:,j)-mr(j);

end

我把上面的弄了M文件,还是有问题,求指导

% start working

num=0;

while(num~=s)  %终止条件是“(0)”的个数与矩阵的维数相同

%index用以标记矩阵中的零元素,若a(i.j)=0,则index(i,j)=1否则index(ij)=0

index=ones(s);

index=a&index;

index=~index;

%flag用以标记划线位,flag=0表示未被划线,

%flag=1表示有划线过,flag=2表示为两直线交点

%ans用以记录a中“(0)”的位置

%循环后重新初始化flag,ans

flag = zeros(s);

ans = zeros(s);

%一次循环划线全过程,终止条件是所有的零元素均被直线覆盖,

%即在flag>0位index=0

while(sum(sum(index)))

%按行找出“(0)”所在位置,并对“(0)”所在列划线,

%即设置flag.同时修改index,将结果填入ans

for i=1:s

t=0;

l=0;

forj=1:s

if(flag(i,j)==0&&index(i,j)==1)

l=l+1;

t=j;

end

end

if(l==1)

flag(:,t)=flag(:,t)+1;

index(:,t)=0;

ans(i,t)=1;

end

end

%按列找出“(0)”所在位置,并对“(0) "所在行划线,

%即设置flag.同时修改index 将结果填入ans

for j=1:s

t=0;

r=0;

for i=1:s

if(flag(i,j)==0&&index(i,j)==1)

r=r+1;

t=I;

end

end

if(r==1)

flag(t,:)=flag(t,:)+1;

index(t,:)=0;

ans(t,j)=1;

end

end

end %对while(sum(sum(index)))

%处理过程

%计数器:计算ans中1的个数,用num表示

num=sum(sum(ans));

%判断是否可以终止,若可以则跳出循环

if(s==num)

break;

end

%否则,进行下一步处理

%确定未被划线的最小元素,用m表示

m=max(max(a));

for i=1:s

for j=1:s

if(flag(i,j)==0)

if(a(i,j)

m=a(i,j);

end

end

end

end

%未被划线,即flag=0处减去m;线交点,即flag=2处加上m

for i=1:s

for j=1:s

if(flag(i,j)==0)

a(i,j)=a(i,j)-m;

end

if(flag(i,j)==2)

a(i,j)=a(i,j)+m;

end

end

end

end

%对while(num~=s)

%计算最优(min)值

zm=ans.*b;

z=0;

z=sum(sum(zm));

matlab 不允许函数定义,求解决: 错误: 此上下文中不允许函数定义。相关推荐

  1. matlab输入指令错误怎么修改,在MATLAB中运行程序时,显示错误: 此上下文中不允许函数定义。 怎么修改?...

    点击查看在MATLAB中运行程序时,显示错误: 此上下文中不允许函数定义. 怎么修改?具体信息 答:MATLAB程序运行错误后,切换到MATLAB命令行中,观察命令行中的错误信息,确定错误原因. 1. ...

  2. 习题 8.6 写一函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。

    C程序设计(第四版) 谭浩强 习题8.6 个人设计 习题 8.6 写一函数,求一个字符串的长度.在main函数中输入字符串,并输出其长度. 代码块: 方法1: #include <stdio.h ...

  3. 题8.6:写一函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度。

    题目 本题是谭浩强<C程序设计课后习题>题8.6. 题目: 写一函数,求一个字符串的长度.在main函数中输入字符串,并输出其长度. 以下是本篇文章正文内容,欢迎朋友们进行指正,一起探讨, ...

  4. 《剑指offer》写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。...

    弱菜刷题还是刷中文题好了,没必要和英文过不去,现在的重点是基本代码能力的恢复. [题目] 剑指offer 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. [思路] 直觉 ...

  5. 写一个函数,求一个字符串的长度,在main 函数中输入字符串,并输出其长度。

    // 写一个函数,求一个字符串的长度,在main 函数中输入字符串,并输出其长度. #include <stdio.h> main() {  int len;  char*str[20]; ...

  6. 写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度

    写一个函数,求一个字符串的长度.在main函数中输入字符串,并输出其长度 代码如下: #include<stdio.h> int len(char *p); int main() {int ...

  7. Mathematica对函数表达式求导并设置为新的自定义函数

    自定义函数 自定义函数需要注意亮点 1.最好使用 := 而非 = 2.定义时等式左端函数变量有下划线,被称为"空白" Wolfram 系统变换规则最强有力的方面或许是它们不仅能用于 ...

  8. matlab 此上下文中不允许函数定义,错误: 此上下文中不允许函数定义。怎么办

    这是我找一个例子,运行就出现错误,怎么回事 x = [5999,5903,5848,5700,7884];gm1(x);  %测试数据 %二次拟合预测GM(1,1)模型 function  gmcal ...

  9. MATLAB | 矩阵元素引用之求下标或序号(sub2ind、ind2sub函数使用)

    基本概念和公式简述 size(A)函数: 得到的是由两个数组成的一个行向量,第一个数是矩阵A的行,第二个数为矩阵A的列 序号:(x,y) 下标:通过计算得到的一个数 下标计算公式:(y-1)*m+x ...

最新文章

  1. C++中的变量作用域介绍
  2. Java访问Redis
  3. 4.Eclipse的安装和使用
  4. zemax中非序列添加相位面_老王讲放射MRI脉冲序列的基本参数
  5. python post请求rsa加密_Python的加密方式:RSA加密
  6. SharePoint REST API - 确定REST端点URL
  7. 为什么只有奇次谐波_关于开关电源谐波失真,这有一份测量分析方法经验分享!...
  8. 【Python笔记】pygame 游戏框架
  9. python爬app视频_python爬取抖音APP视频教程
  10. MyBatis的XML配置文件(二)
  11. docker镜像删除
  12. JavaEE下关于JSF开发的一些知识点小节
  13. 《精通开关电源设计》笔记
  14. 计算机打印机无法打印机驱动,win7安装打印机出现无法找到打印机驱动程序包...
  15. 求解字谜游戏问题-数据结构与算法分析-C语言描述 Mark Allen Weiss-第一章练习题
  16. 单机游戏数据库探讨(MySQL嵌入式服务器的使用)(未完)
  17. 27岁,大专学历,女程序员内心的感受和行业焦虑
  18. .Net部分 面试问题
  19. 不要盲目跟风:中小企业运营自媒体需三思而后行
  20. 鸿蒙系统运行内存为啥只有8g,明明8G内存,系统却显示只有4G!为啥会这样?

热门文章

  1. 软件压力测试怎么做?压力测试报告需要多少费用?
  2. GCC最新版安装及错误解决
  3. 星际之门:真理之舟/真理之盒[DVD中英双字880分辨率/1024x576高清版]
  4. 第5章-远期和期货价格的确定--课后作业--金融衍生工具
  5. C语言每日一练——第32天:小球自由下落问题(第10次落地经过多少米,反弹多高?)
  6. libfranka---joint_impendence_control例程分析
  7. php 批量压缩上传图片,Linux环境下,使用Shell脚本自动批量压缩图片
  8. 面向对象编程,你真正懂吗?
  9. 人工智能Java SDK:基于BERT QA模型问答
  10. Zuul2 的 线程模型