我正在尝试绘制矩阵形式的现有数据。当我尝试绘图时,我得到了错误:
“下标索引必须是实数正整数或逻辑数。”
Plot_Displacement_Linear (第35行)绘图出错( xn(:),ucp(:),'rs',xn(:),ucp_actual(:),'g')
这是非常奇怪的,因为':‘运算符不是一个特定的索引,而只是意味着,访问所有数据作为一个数组。它应该是有效的,而且在过去也是有效的。我研究了xn、ucp和ucp_actual。它们是3D数组,因为它们对应于体积中的位置,但我只对xn感兴趣,xn是体积中当前的x位置。因此,我以xn(:)、ucp(:)、ucp_actual(:)的形式访问它们。因此,我得到了这个错误。我认为这对2D矩阵有效,但这是我第一次通过代码输入3D矩阵。
我研究了plot函数中给出的数组,通过定义新变量如下:
xni = xn(:);
ucpi = ucp(:);
ucp_ai = ucp_actual(:);它们都是一维数组,都是404600x1 (双精度)。所以plot应该已经很好地处理了它们。它们都有相同的长度。
为了确定这是否只是3D访问中的一个小故障,我随后使用了上面重新定义的变量并尝试:
plot(xni(:),ucpi(:),' rs',xni(:),ucp_ai(:),'g'),
plot(xni(:),ucpi(:),xni(:),ucp_ai(:)),
plot(xni,ucpi,xni,ucp_ai),
and finally: plot(xni,ucpi) and plot(xni',ucpi').没有任何东西工作,所有的都产生了相同的错误,即使没有索引被访问,并且只有两个相同长度的向量。有人知道这是怎么回事吗?
提前谢谢你,
丹·M
发布于 2014-07-29 23:59:21
编辑:好的,我想我解决了这个问题,在尝试了下面的方法后,我知道有更深层次的问题:
>> ans = [1;2;3];
>> ans2 = [1;2;3];
>> plot(ans,ans2)
Error: 'Index exceeds matrix dimensions.'再也没有索引了,我只是定义了这些数组。在研究我的数据字段后,我发现我定义了一个名为"plot“的变量,所以它被搞糊涂了。我很惊讶matlab竟然允许我这么做。在使用“清晰的绘图”之后,代码工作得很好。很抱歉给您添了麻烦。
https://stackoverflow.com/questions/25003046
复制相似问题