在2-D图上简化

时间:2014-10-22 09:11:56

标签: matlab 3d 2d

我在excel文件中有一个矢量字段,我使用xlsread来读取它们,quiver3(X,Y,a,U,V,b)(X和Y它们在平面中的坐标,U和V它们在2轴上的速度)来绘制它们。

现在我希望在我的字段上获得简化,并使用streamline(X,Y,U,V,sx(0:10),sy(0:10))。但“它不起作用” 这就是错误:

Subscript indices must either be real positive integers or logicals.

P.S。最有可能的是,错误是因为x和y的起点,我猜......

1 个答案:

答案 0 :(得分:1)

你的问题是对Matlab的基本理解。

在Matlab中,矩阵索引从位置1开始,而不是像C \ C ++那样从0开始,几乎任何其他语言。

因此对于给定的矩阵A=[8 2 4 3 6 7 2]A(1)=8A(3)=4A(1:4)=[8 2 4 3]。但是A(0)并不存在!你正在试图使用来自sx(0:10), sy(0:10)的数据进行精简,但正如Matlab明确告诉你的那样:下标索引必须是 REAL POSITIVE INTEGERS 或逻辑。

显然,0不是真正的正整数。

在这里阅读更多关于indexin的信息: http://www.mathworks.co.uk/company/newsletters/articles/matrix-indexing-in-matlab.html

希望它有所帮助。