我为我的论文写了一段代码,并遇到了以下问题。
在创建ksubgrid
时,如果第一个逻辑部分失败,例如reshape(kmax_ind,nz*nb*nk*nxi,1)
中的元素等于1,MATLAB报告错误,因为linspaceNDim
中的第一个向量具有列号为0的向量。
当逻辑失败时,如何让MATLAB停止执行linspaceNDim
?我知道如果我逐个元素循环,if语句可以解决问题。但由于这里的循环次数很多,所以它会很慢。
那么如何解决矩阵中的问题?
ksubgrid=reshape((reshape(kmax_ind,nz*nb*nk*nxi,1)<nk & reshape(kmax_ind,nz*nb*nk*nxi,1)>1 ).*...
linspaceNDim(kgrid(1,reshape(kmax_ind,nz*nb*nk*nxi,1)-1),kgrid(1,reshape(kmax_ind,nz*nb*nk*nxi,1)+1),nksub)