繁体   English   中英

Matlab图形绘制

[英]Matlab Graph Plotting

给定t1,t2,t3,t4作为实值参数,并采用以下格式的约束:

(t1>=0 and t2>=0 and t3>=0 and t4>=0) 

((t2<=5) or (t1+t2+t3+t4<=3))

可以使用Matlab的.net库绘制此约束吗? (我正在使用C#)。

我关心的是:1.这有四个维度,我不确定该图如何在Matlab中表示; 2.基本上这个约束可能会导致凸多边形,可以在Matlab中绘制这样的多边形吗?

我对Matlab完全陌生,因此,如果可能的话,一些代码片段和结果对我将非常有帮助。 谢谢。

由于我不熟悉C#,所以只能解决Matlab的问题,但是我认为Matlab .NET编译器应该能够导出所有函数?

1:您可以使用动画3D散点图(以及曲面,网格,线图等变体)绘制4维数据。 如果您考虑一下,您的平均3D电子游戏基本上就是4D图。 对于从0秒开始的散点图,仅绘制那些t4 = 0的点,其中x = t1,y = t2,z = t3。 在1秒时,仅绘制t4 = 1的那些。 在2秒时,只有t4 = 2,依此类推,直到达到max(t4),然后循环返回。

您还可以将颜色用作第4维,以便在3D空间中具有着色点。

我认为,从观点上讲,您可以将其推广到其他情节。

请参阅http://www.mathworks.com/help/techdoc/ref/scatter3.htmlhttp://www.mathworks.com/help/techdoc/ref/surf.html

2:让我澄清一些事情。 给定您的初始条件,即任何坐标都不能为负:

  • t2<=5定义了一个无限的4维空间的“平板”,它在3维上是无限的,在1维上是有限的(5单位厚)。 平板的一个边缘位于原点和<0, 5, 0, 0> ,连接到原点的其他三个边沿t1t3t4轴在正方向上延伸到无穷大。
  • t1+t2+t3+t4<=3定义了一个有限的4维金字塔,其尖端在<+, +, +, +>方向上位于原点和底部。

给定您的OR ,结果是这两个空间的并集。 (超)金字塔已经是(超)平板的子集,因此第二个表达式是多余的。 平板是微不足道的,因此我将展示如何仅显示金字塔。

为了使其形象化,我认为您应该将t4设置为10个不同的值,并将其他3个参数分别绘制为不同颜色的表面。

一个例子:

clc
clear
close all

n = 10;

% Manually calculated maximae of x, y, z axes
x = [0 0; 0 3];
y = [0 0; 3 0];
z = [3 3; 0 0];   % surf can only draw polygons, not triangles, so we just squash two points together

% Actual t will be derived from this algorithmically
t = [3 3; 3 3];

% So plots don't replace each other
hold on

for i = 0:0.1:1
    % Manually derived
    surf(x*i, y*i, z*i, t*(1-i));
end
hold off

% Just some aesthetic stuff
xlabel('t1'); 
ylabel('t2'); 
zlabel('t3');
grid on
colormap('hot')

在此处输入图片说明

每种颜色都是不同t4金字塔的底基(尖端在原点)-您可能会想象3D金字塔随着时间的流逝而“缩小”。

我不知道相关性,但是在Matlab中凸多边形完全可以:

plot([0 0 1 1 2 2 3 3 0], [0 2 2 1 1 2 2 0 0]); axis([-1 4 -1 4])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM