【问题标题】:Subscripted assignment dimension mismatch MATLAB下标赋值维度不匹配 MATLAB
【发布时间】:2013-05-30 17:36:10
【问题描述】:

我不确定为什么会收到错误消息。谁能帮忙

L = [];
indexgood=1;
load mrsgarch_t2
eval(['L(:,',num2str(indexgood),') = Loglike(:);']);
indexgood=indexgood+1;  

我得到的错误:

下标分配维度不匹配

谢谢

【问题讨论】:

  • 代码试图做什么?为什么需要使用eval
  • 什么是Loglike?你为什么用eval
  • 感谢回复我尝试为每个循环创建变量。

标签: matlab


【解决方案1】:

根据代码和其他 cmets/answers,我的猜测是 L 仍然为空,当您尝试访问 L(:,1) 时可能会返回该错误,或​​者 logLike(:) 没有返回 nice 1 -d 值。

帮我们一个忙,做:disp(L);在评估它之前暂停一下,看看它是否符合您的预期。如果你能在加载后给我们 logLike 和 L 的类和维度,那就太好了。

另外,如果你每次都加载L,将L设置为[]是多余的,可以去掉。

【讨论】:

  • 感谢您的回复。 L 和 loglike 在 mrsgarch_t2.mat 中。当我运行回归时,L 是 1110x1;而 loglike 是 11x111。
  • 我认为是因为 L 是 1110x1,而 loglike 是 1333
  • 嗨 Shaun314,如果我每次加载文件时都设置 L = []。有用。你能解释一下吗?
  • 但是最后我所有的loglike都会变成0
  • 我几乎是肯定的,我根据您昨天制作的 cmets 发现了您的问题,很抱歉长时间延迟回复。问题在于,正如您在上面的 cmets 中指出的那样,假设 A 是一个二维矩阵,也许是一个 4x4 矩阵。如果我要执行 A(:),它将返回所有 16 个值。如果我只想获取 A 的第一列或其他内容,我会执行 A(:,1)。
【解决方案2】:

另外,L(:,indexgood) 的大小(和维度)与Loglike(:) 的大小不同。

文件mrsgarch_t2.mat中是否可能存在已保存的变量L

如果L 中的行数与Loglike 中的元素数不同,您将收到此错误。

【讨论】:

  • mrsgarch 中保存了一个 L。但是我已经设置了 L = [] 这意味着零数组。但是当我执行另一个文件时它可以工作。我不明白。 L = [];指数好=1;加载 mrsgarch_n eval(['L(:,',num2str(indexgood),') = Loglike(:);']); indexgood=indexgood+1;
  • L 是 MRsGARCH_t2 是 1110x1,loglike 是 12x111
  • 我可以缓解这个问题吗?
  • 您是使用保存在mat文件中的L,还是重新创建L
  • 谢谢。我想在 mat 文件中使用 L 和 L =[] 使其更容易和更快,因为该值不会每次都复制
猜你喜欢
  • 2013-07-03
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
  • 1970-01-01
  • 2015-04-11
  • 1970-01-01
  • 2017-01-26
相关资源
最近更新 更多