想请教下大家,最后一步 theta_CCR_input = rows2vars(w(n+1,:)); %结果输出 的时候系统报错
“检查对函数 'rows2vars' 的调用中是否存在不正确的参数数据类型或缺少参数。”是什么原因呢?前面的都可以运行且能输出结果,就是最后一步老报错,希望路过的能帮忙解答一下,谢谢大家
程序如下:
>> data = importdata('deadata.mat');
>> % 投入导向模型
>> X= rows2vars(data(:,1:3)); % 投入指标数据,每一列代表每个决策单元的投入数据
>> Y= rows2vars(data(:,4)); % 产出指标数据,每一列代表每个决策单元的产出数据
>> X = removevars(X, 'OriginalVariableNames');
>> Y = removevars(Y, 'OriginalVariableNames');
>> M=table2array(X);
>> N=table2array(Y);
>> n=size(X,2); % 决策单元数
>> m=size(X,1); % 投入指标数
>> q=size(Y,1); % 产出指标数
>> w = [];
>> for i = 1:n
f = [zeros(1,n) 1]; % 定义目标函数
Aeq = []; % 没有等式约束
beq = [];
LB = zeros(n+1,1); % 指定下界
UB = [];
A = [M -M(:,i);-N zeros(q,1)]; % 设定不等式约束
b = [zeros(m,1);-N(:,i)];
w(:,i) = linprog(f,A,b,Aeq,beq,LB,UB); % 模型求解
end
theta_CCR_input = rows2vars(w(n+1,:)); % 结果输出
将该形式与 Matlab 要求的函数形式对应,即可编写投入导向的 CRS 模型代码。使用 31 个省份的医疗资源数据作为示例 (示例数据下载),分析各省份的医疗资源的投入产出效率。