首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab图形绘制

Matlab图形绘制
EN

Stack Overflow用户
提问于 2012-09-01 10:54:39
回答 1查看 966关注 0票数 0

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

代码语言:javascript
复制
(t1>=0 and t2>=0 and t3>=0 and t4>=0) 

代码语言:javascript
复制
((t2<=5) or (t1+t2+t3+t4<=3))

这个约束可以用matlab的.net库绘制出来吗?(我正在使用C#)。

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

我是一个全新的Matlab,因此,如果这是可能的,一些代码片段和结果,将对我非常有帮助。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-01 11:25:37

我只能解决Matlab端的问题,因为我不熟悉C#,但我认为Matlab编译器应该能够导出所有函数?

1:您可以使用动画3D散点图(以及曲面、网格、线状图等变体)绘制4维数据。一般的3D视频游戏,如果你仔细想想,基本上是一个4D的情节。对于散点图,从0秒开始,使用x=t1,y=t2,z=t3只绘制那些t4 =0的点。在1秒的时候,只用t4=1绘制那些,在2秒的时候,只画t4=2,依此类推,直到你达到max(t4),然后循环回来。

您还可以使用颜色作为第四个维度,以便在3D空间中具有彩色点。

我认为,从这些点可以推广到其他的情节。

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

他说:让我来澄清几件事。给定没有坐标可以为负数的初始条件:

  • t2<=5定义了一个无限的4维空间的“平板”,它在3维空间中是无限的,在1维空间中是有限的(它有5个单位厚)。板的一条边位于原点和<0, 5, 0, 0>之间,连接到原点的其他三条边沿着t1t3t4定义了一个有限的4维金字塔,尖端在原点和底部朝<+, +, +, +>方向。

给定您的OR,结果是这两个空间的并集。(超)金字塔已经是(超)板的子集,因此第二个表达式是多余的。板子很普通,所以我将展示如何只可视化金字塔。

为了可视化它,我认为你应该,比如说,将t4设置为10个不同的值,并将其他3个参数分别绘制为不同颜色的曲面。

举个例子:

代码语言:javascript
复制
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中是非常好的:

代码语言:javascript
复制
plot([0 0 1 1 2 2 3 3 0], [0 2 2 1 1 2 2 0 0]); axis([-1 4 -1 4])
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12224504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档