plot(x, y, 'r+', 'MarkerSize', 10, 'LineWidth', 2); text(x, y, sprintf('(%.2f, %.2f)', x, y), 'Color', 'red', 'FontSize', 12); hold off;将此时产生的坐标画成轨迹图显示
时间: 2023-08-06 14:14:53 浏览: 60
这里提供一种简单的方法,将所有的坐标点保存到一个矩阵中,然后使用 plot 函数来绘制轨迹图:
```
% 坐标数据
data = [x' y'];
% 绘制轨迹图
figure;
plot(data(:,1), data(:,2), 'r+', 'MarkerSize', 10, 'LineWidth', 2);
hold on;
text(data(:,1), data(:,2), ...
cellstr(num2str(data, '(%.2f, %.2f)')), 'Color', 'red', 'FontSize', 12);
hold off;
```
其中,`data` 矩阵的每一行表示一个坐标点,第一列为 x 坐标,第二列为 y 坐标。`cellstr(num2str(data, '(%.2f, %.2f)'))` 用于将矩阵中的每个数值转化为字符串形式,并添加括号和逗号,最终形成一个单元格数组,每个元素对应一个坐标点的文本标签。
相关问题
plot(x, y, 'r+', 'MarkerSize', 10, 'LineWidth', 2); text(x, y, sprintf('(%.2f, %.2f)', x, y), 'Color', 'red', 'FontSize', 12); hold off;将此时产生的坐标输出为表格
您可以使用以下代码将x和y坐标值存储到数组中,并将它们输出为表格:
```
% 假设x和y是数据点的坐标
x = [1.2 2.5 3.1 4.0];
y = [5.3 6.2 7.5 8.1];
% 绘制散点图和文本标签
plot(x, y, 'r+', 'MarkerSize', 10, 'LineWidth', 2);
text(x, y, sprintf('(%.2f, %.2f)', [x; y]), 'Color', 'red', 'FontSize', 12);
% 输出坐标表格
fprintf('x\t y\n');
fprintf('%.2f\t %.2f\n', [x; y]);
```
输出结果将类似于:
```
x y
1.20 5.30
2.50 6.20
3.10 7.50
4.00 8.10
```
for fixmix=[0 1] switch fixmix case 0, K=3; case 1, K=2; end model = mixexpFit(X, y, K, 'fixmix', fixmix, 'EMargs', ... {'verbose', true, 'nrandomrestarts', 2}); [mu, v, post, muk, vk] = mixexpPredict(model, xtest); figure; plot(X, y, 'o', 'markersize', 10); hold on plot(xtest, mu, 'r-', 'linewidth', 3); title(sprintf('predicted mean, fixed mixing weights=%d', fixmix)) printPmtkFigure(sprintf('mixexpMeanFixmix%d', fixmix)) figure; plot(X, y, 'o', 'markersize', 10); hold on plot(xtest, mu, 'r-', 'linewidth', 3); N = numel(xtest); ndx = 1:4:N; errorbar(xtest(ndx), mu(ndx), sqrt(v(ndx))); title(sprintf('predicted mean and var, fixed mixing weights=%d', fixmix)) printPmtkFigure(sprintf('mixexpMeanVarFixmix%d', fixmix)) %colors = pmtkColors; [styles, colors, symbols, str] = plotColors; figure; hold on for k=1:K str = sprintf('%s%s', styles{k}, colors(k)); plot(xtest, post(:,k), str, 'linewidth', 3); end title(sprintf('gating functions, fixed mixing weights=%d', fixmix)) axis_pct printPmtkFigure(sprintf('mixexpGatingFixmix%d', fixmix)) figure; hold on for k=1:K str = sprintf('%s%s', styles{k}, colors(k)); plot(xtest, muk(:,k), str, 'linewidth', 3); end plot(X, y, 'o', 'markersize', 10); title(sprintf('expert predictions, fixed mixing weights=%d', fixmix)) printPmtkFigure(sprintf('mixexpExpertsFixmix%d', fixmix)) end
这段代码是一个循环,用于根据不同的 `fixmix` 参数值进行模型训练和预测,并绘制相应的图形。
循环的第一部分使用 `switch` 语句根据 `fixmix` 的值设置变量 `K` 的取值。当 `fixmix` 为 0 时,`K` 被设置为 3;当 `fixmix` 为 1 时,`K` 被设置为 2。
然后,使用函数 `mixexpFit` 对数据进行混合指数分布模型的拟合。拟合过程中传入了一些参数,如 `fixmix` 的值、EM 算法的参数等。
接下来,使用训练好的模型对测试数据 `xtest` 进行预测,得到预测的均值 `mu`、方差 `v`、后验概率 `post`、专家均值 `muk` 和专家方差 `vk`。
接下来,绘制图形,包括原始数据点的散点图、预测均值 `mu` 的曲线图和带有误差棒的预测均值和方差图。图形的标题中包含了 `fixmix` 的值。
最后,使用循环来绘制专家的门函数图和专家的预测图。其中,门函数图展示了每个专家对输入数据点的响应程度,而专家的预测图展示了每个专家的预测结果。
在每次循环迭代中,图形会被保存为文件。
请问还有其他问题吗?
阅读全文
相关推荐
















