Matlab 二维绘图上的流线

Matlab 二维绘图上的流线,matlab,3d,2d,Matlab,3d,2d,我在excel文件中有一个向量场,我使用xlsread读取它们,并quiver3(X,Y,a,U,V,b)(X和Y在平面上的坐标,U和V在两个轴上的速度)绘制它们 现在我想在我的字段上得到流线,我使用流线(X,Y,U,V,sx(0:10),sy(0:10))。但是“它不起作用” 这就是错误: Subscript indices must either be real positive integers or logicals. p、 最有可能的是,这个错误是因为x和y的起点,我猜 您的问题是对

我在excel文件中有一个向量场,我使用
xlsread
读取它们,并
quiver3(X,Y,a,U,V,b)
(X和Y在平面上的坐标,U和V在两个轴上的速度)绘制它们

现在我想在我的字段上得到流线,我使用
流线(X,Y,U,V,sx(0:10),sy(0:10))
。但是“它不起作用” 这就是错误:

Subscript indices must either be real positive integers or logicals.

p、 最有可能的是,这个错误是因为x和y的起点,我猜

您的问题是对Matlab的基本理解

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

所以对于给定的矩阵
a=[8243672]
a(1)=8
a(3)=4
a(1:4)=[82433]
。但是
A(0)
不存在!您正在尝试使用来自
sx(0:10)、sy(0:10)
的数据进行简化,但正如Matlab清楚地告诉您的那样:下标索引必须是实正整数或逻辑数

显然,0不是一个真正的正整数

请在此处阅读有关matlab中indexin的更多信息:


希望有帮助。

“它不起作用”。这是什么意思?你有错误吗?有什么不同吗?给我们一根骨头,我们不能用一句半的解释来解决一个问题。发布一些简单的工作示例,说明你得到了什么和你想要什么。是的,它不起作用!!看,我在excel文件中有一个向量场。我用xlsread读取它们,并用quiver3(X,Y,a,U,V,b)(X和Y在平面上的坐标,U和V在两个轴上的速度)绘制它们。到目前为止很酷,对吧?现在我想得到我场上的流线,我用流线(X,Y,U,V,sx(0:10),sy(0:10))来表示。是的,它不起作用。这就是错误:下标索引必须是实正整数或逻辑数。提前谢谢,伙计:)好的,现在我们有更多的信息可以处理。请用您的新信息编辑您的问题。谢谢您提供的信息。你是对的。在sx(0:10)中,我将1或任何实数正整数替换为0,现在的错误是:对于类型为“double”的输入参数,未定义函数“sx”。我在mathworks上找到了一个类似的例子,但我就是不懂数字系统。它在这里:[sx,sy,sz]=meshgrid(80,20:10:50,0:5:15);你可以在这里找到一个例子:例如,在这个例子中80或20代表什么@anderbiguri@itsddadgar一个很好的方法是在帮助中搜索函数,因为这里有解释:。你现在的错误是因为你没有运行你给我看的那段代码。错误是因为变量还不存在。我强烈建议您在学习stackoverflow之前先学习一些matlab教程,以确保您事先了解一些基本知识。希望如此helps@itsddadgar此外,阅读你提供的链接通常是一个很好的练习。如果您阅读了刚才发布的链接:“此声明将起点定义为x=80,y从20到50,z从0到15。”我感谢您的帮助和信息,但我不认为此网页仅适用于专业人士。它有一个部分,上面写着问一个问题,意思是如果你不知道什么,就在这里问。再次感谢您花费的时间。@itsddadgar绝对感谢!我们来帮忙!但它也说你需要自己做基础研究。至少你需要证明你用谷歌搜索了它。每天都有数十个问题被关闭,仅仅因为OP没有做基础研究。阅读: