Borrar filtros
Borrar filtros

Error using ==> mrdivide Out of memory

1 visualización (últimos 30 días)
Fadzli
Fadzli el 7 de Feb. de 2017
Comentada: Fadzli el 8 de Feb. de 2017
Hi, this is my code;
r=10
for i=1:r
Cs=1.17
Cc=2.37
v=0.0000711
kg=0.0457
kp=0.26
Ct=2.18
Kn=0.1
Cm=1.14
T=temperature(i,:);
Vtx=(((2*Cs*Cc*v)*((kg/kp)+(Ct*Kn)))/((1+(3*Cm*Kn))...
*(1+2*(kg/kp)+(2*Ct*Kn))))*(1/T)*(Delta_temperature/Delta_x);
end
Then, there is an error comes out;
??? Error using ==> mrdivide Out of memory. Type HELP MEMORY for your options.
Error in ==> Vtx=(((2*Cs*Cc*v)*((kg/kp)+(Ct*Kn)))/((1+(3*Cm*Kn))...
What is actually happen?
p/s: Delta_temperature & Delta_x already defined...

Respuesta aceptada

Walter Roberson
Walter Roberson el 7 de Feb. de 2017
You have
T=temperature(i,:);
Vtx=(((2*Cs*Cc*v)*((kg/kp)+(Ct*Kn)))/((1+(3*Cm*Kn))...
*(1+2*(kg/kp)+(2*Ct*Kn))))*(1/T)*(Delta_temperature/Delta_x);
T is a column vector, so 1/T is a request to do a Matrix Right Division. That takes more memory than a plain division -- it would require at least one matrix length(T) by length(T) to build the vandermode matrix, and then some other working memory (quite possibly another matrix the same size as that.)
Perhaps you want 1./T instead of 1/T ?
  1 comentario
Fadzli
Fadzli el 8 de Feb. de 2017
Thank you sir, I think I got the point...

Iniciar sesión para comentar.

Más respuestas (1)

Jan
Jan el 7 de Feb. de 2017
Editada: Jan el 7 de Feb. de 2017
The dimensions of the already defined variables Delta_temperature and Delta_x matter. If they are [N, 1] and [M, 1] vectors, the result is a [N, M] matrix. It seems like the creation of this matrix exhaust your memory.
There are several methods to cope with this problem:
  1. Install more RAM
  2. Consider if this is a bug and you want an elementwise division with the ./ operator.
  3. Install more RAM
  4. Close other applications
  5. Use single precision, if applicabale and accurate enough for the problem
  6. Install more RAM and care for using a 64 bit Matlab, such that the RAM can be used
  7. Clear unused variables. Most of all compute large arrays outside the loop and once only
  8. Check the sizes of the concerned variables - perhaps there is a bug before
  9. And, you can guess it, install more RAM ;-)
  1 comentario
Fadzli
Fadzli el 8 de Feb. de 2017
Thank you sir, I think I got the point...

Iniciar sesión para comentar.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by