我正在尝试通过优化工具箱实现此优化问题:
其中N = 60
个文件和K = 130
个用户,1/K ≤ M ≤ t∗N/K
个文件。
所以我写了这段代码:
t∗ =3
但是输出应该如图所示,是切割定界之一
数组索引必须为正整数或逻辑值。
尝试错误(第17行)
clear all; close all; clc; N=60; t=3; K=130; for M=0:0.1:1.4 r=zeros(size(1:M)); f=le(1/K,M); c=le(M,3*N/K); if f || c R2 = @(s) -(s-(s./ floor(N./s)).*M); LB = 1; UB = min(N, K); options = optimoptions('fmincon','Algorithm','interior-point'); % run interior-point algorithm [sopt, ropt] = fmincon(R2,1,[],[],[],[],LB,UB,[],options); r(M) = -ropt; end end plot(0:1.4,r(M),'r-','LineWidth',2); xlabel('Cache Capacity (M)'); ylabel('Delivery Rate (R)');
;
答案 0 :(得分:0)
@NgModule({ imports: [SomeModule]})
export class VendasModule
r
要在for循环内索引r,您需要整数,M是一个浮点数。
您可以只定义其他索引 r =zeros(size(0:0.1:1.4));
i
索引
绘制整个数组,并记住将横坐标保持为
r
0:0.1:1.4
或者,您可以将所有N=60;
t=3;
K=130;
i = 0;
r = zeros(size(0:0.1:1.4));
for M=0:0.1:1.4
i = i+1;
f=le(1/K,M);
c=le(M,3*N/K);
if f || c
R2 = @(s) -(s-(s./ floor(N./s)).*M);
LB = 1;
UB = min(N, K);
options = optimoptions('fmincon','Algorithm','interior-point'); % run interior-point algorithm
[sopt, ropt] = fmincon(R2,1,[],[],[],[],LB,UB,[],options);
r(i) = -ropt;
end
end
plot(0:0.1:1.4,r,'r-','LineWidth',2);
xlabel('Cache Capacity (M)');
ylabel('Delivery Rate (R)');
元素预定义为M
,然后循环使用整数索引,该索引也可以用于索引M = 0:0.1:1.4
r
图表