z1 = 2000;%布置和移除一个施工区所需的固定费用 z2 = 93750;%养护一个车道每公里的单位成本 z3 = 2;%设置和移除一个施工区所需要的时间 z4 = 5;%每车道每公里养护所需的时间 theta = 1;%夜间施工影响系数 Si = [1,2,3,6,8,9];%施工区i的施工开始时间 Ei = [9,11,7,14,15,19];%施工区i的施工结束时间 CMiX = z1 + theta*z2/z4*(Ei-Si-z3);%函数式 m = 5;%施工区个数 CTMX = zeros(1,m); for t = 1:m CTMX(t) = z1 + theta*z2/z4*(Ei(1,t)-Si(1,t)-z3); end sumCTMX = sum(CTMX),绘制自变量t与因变量sum(CTMX)的图像
时间: 2024-03-25 18:39:33 浏览: 57
这个问题和之前的问题是一样的,只是变量名称略有不同。以下是绘制自变量t与因变量sum(CTMX)的图像的Matlab代码:
```
z1 = 2000;
z2 = 93750;
z3 = 2;
z4 = 5;
theta = 1;
Si = [1,2,3,6,8,9];
Ei = [9,11,7,14,15,19];
CMiX = z1 + theta*z2/z4*(Ei-Si-z3);
sumCMiX = sum(CMiX);
t = Si;
plot(t, CMiX)
xlabel('t')
ylabel('sum(CMiX)')
title('Plot of sum(CMiX) vs. t')
```
这将绘制一个简单的图形,其中自变量t在x轴上,因变量sum(CMiX)在y轴上。请注意,这里我们使用了变量CMiX,它与之前的变量CTMX相同,只是名称不同。
相关问题
%% 离散点y坐标(右半边圆) z1 = linspace(5,8,100); z2 = linspace(5,11.5,100); z3 = linspace(5,9.75,100); % 左曲线方程(圆心坐标为(-4.75,5),半径为3) f = @(z) -4.75+sqrt(3^2-(z-5).^2); % 右曲线方程(圆心坐标为(-4.75+3.5,5),半径为3) g = @(z) -(1.75+3)+sqrt((3+3.5)^2-(z-5).^2); % 左曲线上的点 left_points = [f(z1); z1]; % 右曲线上的点 right_points = [g(z2); z2]; % 中间行车曲线上的点 middle_points = [(f(z1) + g(z2)) / 2; z3]; %% 画图 figure(1) plot(f(z1), z1, '-', 'Color', 'blue') hold on plot(g(z2), z2, '-', 'Color', 'green') hold on plot((f(z1) + g(z2)) / 2, z3, '.', 'Color', 'red')怎么将四分之一圆改成上半圆的matlab代码
可以将左半部分圆曲线的方程改为:
```matlab
% 上半圆方程(圆心坐标为(-4.75, 5),半径为3)
f = @(z) -4.75+sqrt(3^2-(z-5).^2).*(z>=5 & z<=8) + (z>8).*(8-5);
```
其中,`(z>=5 & z<=8)` 表示只有在 z 坐标在 5 到 8 之间的点才满足圆曲线方程,而 `(z>8).*(8-5)` 表示在 z 坐标大于 8 的点,y 坐标固定为 8。
完整代码:
```matlab
%% 离散点y坐标(右半边圆)
z1 = linspace(5,8,100);
z2 = linspace(5,11.5,100);
z3 = linspace(5,9.75,100);
% 上半圆方程(圆心坐标为(-4.75, 5),半径为3)
f = @(z) -4.75+sqrt(3^2-(z-5).^2).*(z>=5 & z<=8) + (z>8).*(8-5);
% 右半圆方程(圆心坐标为(-1.25, 5),半径为3)
g = @(z) -(1.75+3)+sqrt((3+3.5)^2-(z-5).^2);
% 左曲线上的点
left_points = [f(z1); z1];
% 右曲线上的点
right_points = [g(z2); z2];
% 中间行车曲线上的点
middle_points = [(f(z1) + g(z2)) / 2; z3];
%% 画图
figure(1)
plot(f(z1), z1, '-', 'Color', 'blue')
hold on
plot(g(z2), z2, '-', 'Color', 'green')
hold on
plot((f(z1) + g(z2)) / 2, z3, '.', 'Color', 'red')
```
如何读取该文件中的节点数量,并记为n_gateway。file = fopen('liangcengjiedian.txt', 'r'); % 去掉空格 if file ~= -1 % 确认文件已经被正确打开 data = textscan(file, '(%f,%f,%f) to (%f,%f,%f)\n'); gateway1 = []; gateway2 = []; for i = 1:size(data{1}, 1) x1 = data{1}(i); y1 = data{2}(i); z1 = data{3}(i); x2 = data{4}(i); y2 = data{5}(i); z2 = data{6}(i); gateway1 = [gateway1; x1, y1, z1]; gateway2 = [gateway2; x2, y2, z2]; end fclose(file); % 记得关闭文件 else
可以使用MATLAB中的函数textscan读取文件中的节点数量并存储在变量n_gateway中。具体代码如下:
```
file = fopen('liangcengjiedian.txt', 'r');
if file ~= -1
data = textscan(file, '(%f,%f,%f) to (%f,%f,%f)\n');
n_gateway = length(data{1});
gateway1 = [];
gateway2 = [];
for i = 1:size(data{1}, 1)
x1 = data{1}(i);
y1 = data{2}(i);
z1 = data{3}(i);
x2 = data{4}(i);
y2 = data{5}(i);
z2 = data{6}(i);
gateway1 = [gateway1; x1, y1, z1];
gateway2 = [gateway2; x2, y2, z2];
end
fclose(file);
else
fprintf('Failed to open file\n');
end
```
其中,函数length用于获取data{1}中的元素个数,即节点数量。
阅读全文
相关推荐














