Matlab 变量数量对速度/内存分配的影响

Matlab 变量数量对速度/内存分配的影响,matlab,variables,Matlab,Variables,我有一些方法来构建代码及其变量。例如,我可以写: for i=1:N Block(i,:,1)=circshift(baseRow1, [0 i-1]); Block(i,:,2)=circshift(baseRow2, [0 i-1]); Block(i,:,3)=circshift(baseRow3, [0 i-1]); end 也可以通过以下方式编写: for i=1:N Block1(i,:)=circshift(baseRow1, [0 i-1]); B

我有一些方法来构建代码及其变量。例如,我可以写:

for i=1:N
   Block(i,:,1)=circshift(baseRow1, [0 i-1]);
   Block(i,:,2)=circshift(baseRow2, [0 i-1]);
   Block(i,:,3)=circshift(baseRow3, [0 i-1]);
end
也可以通过以下方式编写:

for i=1:N
   Block1(i,:)=circshift(baseRow1, [0 i-1]);
   Block2(i,:)=circshift(baseRow2, [0 i-1]);
   Block3(i,:)=circshift(baseRow3, [0 i-1]);
end
忽略函数的作用,我询问定义变量的最佳方法。在速度/内存分配方面-有什么区别吗?我更喜欢少变量但大变量,还是多个小变量

在这个例子中,这可能并不重要,但它只是整个代码中的一小部分。。。
谢谢

您问这个问题纯粹是出于好奇,还是在这里遇到了性能问题?
N
有多大?除非它很大,否则我不会担心这个。如果它相当大,那么你可以通过计时你的代码来回答你的问题。@Eitan T和Sam Roberts我有相当大的martices,我现在真的在写这个程序,不仅仅是好奇。在这部分中,N=256,但这几行从一个大矩阵中构建一个小块。因为我要在这些“块”变量中使用很多次,所以我问了这个问题。运行它需要很多时间,所以我宁愿在尝试这两个选项之前知道答案。。。我可以试着在这段代码上做,但我不知道它是否代表了整个代码,也不知道做了其他事情…@Adiel对于初学者,我建议将所有
baseRow
矩阵存储在一个更大的矩阵中,并调用
circshift
一次。这将为您保存循环…@EitanT这是个好主意,但不会为我保存循环,因为循环不是在不同的“基线”向量上,而是在每个向量的长度上。每次迭代进行另一个循环。并将其添加到矩阵中。每个向量变成“循环矩阵”