我在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的起点,我猜......
答案 0 :(得分:1)
你的问题是对Matlab的基本理解。
在Matlab中,矩阵索引从位置1开始,而不是像C \ C ++那样从0开始,几乎任何其他语言。
因此对于给定的矩阵A=[8 2 4 3 6 7 2]
,A(1)=8
,A(3)=4
,A(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
希望它有所帮助。