matlab绘制项目网络计划图的代码。1)已知36个任务,已知任务的紧前关系,已知任务的持续时间;2)已知共有3种资源;3)已知每个任务使用的资源种类和资源使用量;4)网络计划图中需要标记工期、资源种类、资源使用量
时间: 2023-06-11 07:10:11 浏览: 114
已知齿轮齿数Z1,Z2模数m,压力角α绘制齿轮齿形及两个齿轮啮合仿真(MATLAB)
以下是一个简单的 MATLAB 代码示例,可以绘制一个基本的项目网络计划图。需要根据实际情况,修改代码中的任务名称、紧前关系、持续时间、资源种类、资源使用量等信息。
```matlab
% 任务名称
tasks = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'AA', 'BB', 'CC', 'DD', 'EE', 'FF', 'GG', 'HH', 'II'};
% 任务持续时间
duration = [3, 5, 4, 2, 4, 6, 3, 5, 4, 2, 4, 6, 3, 5, 4, 2, 4, 6, 3, 5, 4, 2, 4, 6, 3, 5, 4, 2, 4, 6, 3, 5, 4, 2, 4];
% 资源种类
resources = {'人力资源', '物质资源', '财务资源'};
% 每个任务使用的资源种类和资源使用量
resource_usage = [1, 2, 0; 2, 1, 0; 1, 0, 1; 0, 1, 1; 1, 0, 0; 0, 1, 0; 1, 0, 0; 0, 1, 0; 0, 0, 1; 1, 1, 0; 0, 1, 1; 1, 0, 1; 1, 1, 0; 0, 1, 1; 1, 0, 1; 1, 1, 0; 1, 0, 0; 0, 1, 0; 1, 0, 0; 0, 1, 0; 0, 0, 1; 1, 1, 0; 0, 1, 1; 1, 0, 1; 1, 1, 0; 0, 1, 0; 1, 0, 0; 0, 1, 0; 1, 0, 1; 0, 0, 1; 1, 1, 0; 0, 1, 1; 1, 0, 1; 1, 1, 0; 0, 1, 0];
% 紧前关系
predecessors = {[1], [1], [2], [2], [3], [4], [3], [4], [5], [5], [6,7], [7,8], [8,9], [9,10], [10,11], [11,12], [12,13], [13,14], [14,15], [15,16], [16,17], [17,18], [18,19], [19,20], [20,21], [21,22], [22,23], [23,24], [24,25], [25,26], [26,27], [27,28], [28,29], [29,30]};
% 计算任务的最早开始时间和最晚开始时间
n = length(tasks);
es = zeros(n, 1);
ls = zeros(n, 1);
for i = 1:n
if isempty(predecessors{i})
es(i) = 0;
else
es(i) = max(es([predecessors{i}])) + duration(predecessors{i} == max(es([predecessors{i}])));
end
ls(i) = min(ls(setdiff(find(cellfun(@(x) any(x == i), predecessors)), i))) - duration(i);
end
% 绘制计划图
P = digraph(predecessors);
figure
plot(P, 'EdgeLabel', duration, 'NodeLabel', tasks, 'Layout', 'layered')
% 标记工期
for i = 1:n
text(es(i) + duration(i) / 2, -1.5, num2str(duration(i)), 'HorizontalAlignment', 'center')
end
% 标记资源种类和资源使用量
for i = 1:n
for j = 1:3
if resource_usage(i, j) > 0
text(es(i) + duration(i) / 2, -2.5 - j, [resources{j}, ': ', num2str(resource_usage(i, j))], 'HorizontalAlignment', 'center')
end
end
end
```
此代码将生成一个基本的项目网络计划图,其中任务以节点表示,箭头表示紧前关系,持续时间标记在边上,工期、资源种类和资源使用量标记在图下方。可以根据需要自定义样式、颜色和布局。
阅读全文