Matlab 下标赋值维数不匹配

Matlab 下标赋值维数不匹配,matlab,Matlab,我不确定我为什么会出错。有人能帮忙吗 L = []; indexgood=1; load mrsgarch_t2 eval(['L(:,',num2str(indexgood),') = Loglike(:);']); indexgood=indexgood+1; 我得到的错误是: 下标赋值维度不匹配 很显然,L(:,indexgood)的大小(和维度)不同于Loglike(:)的大小 文件mrsgarch_t2.mat中是否有保存的变量L 如果L中的行数不同于Loglike中的元素数,则

我不确定我为什么会出错。有人能帮忙吗

L = [];
indexgood=1;
load mrsgarch_t2
eval(['L(:,',num2str(indexgood),') = Loglike(:);']);
indexgood=indexgood+1;  
我得到的错误是:

下标赋值维度不匹配

很显然,
L(:,indexgood)
的大小(和维度)不同于
Loglike(:)
的大小

文件
mrsgarch_t2.mat
中是否有保存的变量
L


如果
L
中的行数不同于
Loglike
中的元素数,则会出现此错误

从代码和其他注释/答案中,我猜要么L仍然是空的,当您尝试访问L(:,1)时可能会返回该错误,要么logLike(:)没有返回良好的1-d值

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


此外,如果每次都加载L,则将L设置为[]是多余的,可以删除。

代码试图做什么?为什么需要使用
eval
?什么是
Loglike
?为什么要使用
eval
?感谢您的回复,我尝试为每个循环创建变量。mrsgarch中保存了一个L。但是我已经设置了L=[],这意味着零数组。但当我执行另一个文件时,它会工作。我不明白。L=[];指数良好=1;加载mrsgarch n eval(['L(:,',num2str(indexgood),')=Loglike(:);']);指数良好=指数良好+1;L是MRsGARCH_t2是1110x1,loglike是12x111我可以缓解这个问题吗?您是使用mat文件中保存的
L
,还是重新创建
L
?谢谢。我想在mat文件中使用L,L=[]使其更简单、更快,因为该值不会每次复制。谢谢回复。L和loglike在mrsgarch_t2.mat中。当我运行回归时,L是1110x1;而loglike是11x111。我想这是因为L是1110x1,loglike是1333hi Shaun314,如果我每次加载文件时都设置L=[]。它起作用了。你能解释一下吗?但到最后,我所有的日志都会变成0。我几乎可以肯定,根据你昨天的评论,我已经解决了你的问题。很抱歉,我迟迟没有回复你。问题是,正如您在上述评论中指出的,假设A是一个二维矩阵,可能是一个4x4矩阵。如果我执行(:),它将返回所有16个值。如果我只想得到第一列或A的某个部分,我会做一个(:,1)。