Matrix 在绘图中,下标索引必须是实正整数或逻辑数

Matrix 在绘图中,下标索引必须是实正整数或逻辑数,matrix,plot,3d,indices,Matrix,Plot,3d,Indices,我试图绘制矩阵中的现有数据。当我尝试打印时,我得到错误: “下标索引必须为实 正整数或逻辑。“ 绘图错误\u位移\u线性(直线 35) 绘图(xn(:)、ucp(:)、'rs',xn(:)、ucp_实际(:)、'g') 这是非常奇怪的,因为“:”操作符不是一个特定的索引,而是指作为数组访问所有数据。它本应该起作用,过去也曾起过作用。我调查了xn、ucp和ucp_实际值。它们是3D阵列,因为它们对应于卷中的位置,但我只对根据xn(卷中当前的x位置)绘制它们感兴趣。因此,我以xn(:)、ucp(:)

我试图绘制矩阵中的现有数据。当我尝试打印时,我得到错误:

“下标索引必须为实 正整数或逻辑。“

绘图错误\u位移\u线性(直线 35) 绘图(xn(:)、ucp(:)、'rs',xn(:)、ucp_实际(:)、'g')

这是非常奇怪的,因为“:”操作符不是一个特定的索引,而是指作为数组访问所有数据。它本应该起作用,过去也曾起过作用。我调查了xn、ucp和ucp_实际值。它们是3D阵列,因为它们对应于卷中的位置,但我只对根据xn(卷中当前的x位置)绘制它们感兴趣。因此,我以xn(:)、ucp(:)、ucp_实际(:)的形式访问它们。结果我得到了这个错误。我认为这对2D矩阵有效,但这是我第一次通过代码输入3D矩阵

我调查了plot函数中给出的数组,通过定义新变量:

xni = xn(:);
ucpi = ucp(:);
ucp_ai = ucp_actual(:);
它们都是1-D阵列,都是404600x1(双精度)。所以阴谋应该把他们都处理得很好。它们都一样长

为了确定这是否只是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').
什么都不起作用,所有这些都产生了相同的错误,即使在没有可访问的索引和只有两个长度相同的向量的情况下也是如此。有人知道发生了什么事吗

提前感谢,


Dan M

编辑:好的,我想我解决了这个问题,在尝试了以下内容后,我知道有更深层次的问题:

>> ans = [1;2;3];
>> ans2 = [1;2;3];
>> plot(ans,ans2)
Error: 'Index exceeds matrix dimensions.'
又没有索引了,我只是定义了这些数组。在调查我的数据字段后,我发现我定义了一个名为“plot”的变量,所以它很混乱。我很惊讶matlab竟然让我这么做。使用“清晰绘图”后,代码运行良好。抱歉给你添麻烦了