clc clear format long %x=xlsread('data.xlsx'); %把原始数据保存在纯文本文件data.txt中 x = xlsread('C:\Users\XuHaoYuan\Documents\MATLAB\DEA.xlsx'); X=x(:,[1:3]); %X为输入变量,3为输入变量的个数这里可以自己设置 X=X'; Y=x(:,[4:5]); %Y为输出变量,5(3+2),2为输出变量的个数这里可以自己设置 Y=Y'; n=size(X',1); m=size(X,1); s=size(Y,1); A=[-X' eye(m,m) zeros(m,s); zeros(s,m) -eye(s,s) eye(s,s)]; b=zeros(n+s,1); LB=zeros(m+s2,1); UB=[]; for i=1:n; f=[zeros(1,m) zeros(1,m) -Y(:,i)']; Aeq=[X(:,i)', zeros(1,m+s)]; beq=1; w(:,i)=linprog(f,A,b,Aeq,beq,LB,UB); E(i,i)=Y(:,i)'w(m+s+1:m+2s,i); end theta=diag(E)'; fprintf('用DEA方法对此的相对评价结果为:\n'); disp(theta); omega=w(1:m,:); mu=w(m+s+1:m+2s,:);>> BCC-2 尝试将 SCRIPT BCC 作为函数执行: C:\Users\XuHaoYuan\Desktop\BCC.m
时间: 2023-09-16 13:10:01 浏览: 91
这个报错是因为你尝试把一个脚本文件当做函数执行。如果你想把这段代码封装为函数,你需要将其保存为一个.m文件,并且在文件中定义一个函数。例如,你可以在BCC.m文件中定义一个名为BCC的函数,并将这段代码放在函数内部。然后,你可以在命令行中调用这个函数来执行代码。具体的代码可以参考下面的示例:
```matlab
function [theta, omega, mu] = BCC()
clc;
clear;
format long;
%x=xlsread('data.xlsx'); %把原始数据保存在纯文本文件data.txt中
x = xlsread('C:\Users\XuHaoYuan\Documents\MATLAB\DEA.xlsx');
X = x(:,[1:3]); %X为输入变量,3为输入变量的个数这里可以自己设置
X = X';
Y = x(:,[4:5]); %Y为输出变量,5(3+2),2为输出变量的个数这里可以自己设置
Y = Y';
n = size(X',1);
m = size(X,1);
s = size(Y,1);
A = [-X' eye(m,m) zeros(m,s); zeros(s,m) -eye(s,s) eye(s,s)];
b = zeros(n+s,1);
LB = zeros(m+s2,1);
UB = [];
for i=1:n
f=[zeros(1,m) zeros(1,m) -Y(:,i)'];
Aeq=[X(:,i)', zeros(1,m+s)];
beq=1;
w(:,i)=linprog(f,A,b,Aeq,beq,LB,UB);
E(i,i)=Y(:,i)'w(m+s+1:m+2s,i);
end
theta=diag(E)';
fprintf('用DEA方法对此的相对评价结果为:\n');
disp(theta);
omega=w(1:m,:);
mu=w(m+s+1:m+2s,:);
end
```
这样,你就可以在命令行中调用BCC函数来执行代码了。例如,你可以输入以下命令:
```matlab
[theta, omega, mu] = BCC();
```
这将会执行BCC函数,并返回theta、omega和mu三个变量的值。
阅读全文