matlab绘制项目网络计划图的代码
时间: 2023-06-11 11:10:17 浏览: 176
在 MATLAB 中绘制项目网络计划图,可以使用 Gantt Chart 工具箱。下面是一个简单的示例代码:
```matlab
% 创建任务
tasks = {'任务1', '任务2', '任务3', '任务4', '任务5'};
% 创建持续时间
durations = [3 2 4 1 5];
% 创建起始时间
startDates = [0 3 3 7 8];
% 创建结束时间
endDates = startDates + durations;
% 创建 Gantt 图
ganttChart = gantt(tasks, durations, startDates, endDates);
% 设置标题和标签
title('项目网络计划图');
xlabel('时间');
ylabel('任务');
% 显示图表
show(ganttChart);
```
这个示例代码定义了五个任务,每个任务的持续时间、起始时间和结束时间已经事先确定。然后使用 `gantt` 函数创建一个 Gantt 图,并设置图表的标题和标签。最后,使用 `show` 函数显示图表。
你可以根据自己的项目需要修改任务名称、持续时间、起始时间和结束时间。
相关问题
matlab绘制项目网络计划图的代码。1)已知36个任务,已知任务的紧前关系,已知任务的持续时间;2)已知共有3种资源;3)已知每个任务使用的资源种类和资源使用量;4)网络计划图中需要标记工期、资源种类、资源使用量
以下是一个简单的 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
```
此代码将生成一个基本的项目网络计划图,其中任务以节点表示,箭头表示紧前关系,持续时间标记在边上,工期、资源种类和资源使用量标记在图下方。可以根据需要自定义样式、颜色和布局。
画项目网络图 matlab代码
在Matlab中,你可以使用graph()函数来创建项目网络图。以下是一个简单的示例代码:
```matlab
% 创建节点
nodes = {'A', 'B', 'C', 'D', 'E', 'F'};
% 创建边
edges = {'A', 'B'; 'A', 'C'; 'B', 'D'; 'C', 'D'; 'C', 'E'; 'D', 'F'; 'E', 'F'};
% 创建图形对象
g = graph(edges(:, 1), edges(:, 2));
% 绘制图形
plot(g, 'NodeLabel', nodes);
```
在这个示例中,我们创建了一个由6个节点和7条边组成的项目网络图。我们首先创建节点和边的矩阵,然后使用graph()函数创建图形对象。最后,使用plot()函数绘制图形,并使用'NodeLabel'选项将节点名称添加到图形中。
你可以根据自己的需要,修改节点和边的矩阵,以创建自己的项目网络图。
阅读全文
相关推荐















