Subscripted assignment dimension mismatch

1 visualización (últimos 30 días)
Mos_bad
Mos_bad el 21 de Mayo de 2018
Comentada: Walter Roberson el 21 de Mayo de 2018
I got error 'Subscripted assignment dimension mismatch' for the following code:
for i = 1 : 2
for k = 1: 4
tmp3_=val(['importdata(''./Output/THOutput/Run',num2str(i),'/GM',num2str(k),'/pileDisp','.out'')']);
nPileNode = (size(tmp3_, 2)-1) / 3;
for n=1 : nPileNode
dispPileNodes_X(: , n)=tmp3_( : , (n-1) * 3 + 2 );
dispPileNodes_Y(: , n)=tmp3_( : , (n-1) * 3 + 3 );
end
Max_dispPileNodes_X =max(abs(dispPileNodes_X),[],2);
Max_dispPileNodes_Y =max(abs(dispPileNodes_Y),[],2);
Max_max_dispPileNodes_X(i,k) = max(abs(Max_dispPileNodes_X));
Max_max_dispPileNodes_Y(i,k) = max(abs(Max_dispPileNodes_Y));
end
end

Respuestas (1)

Walter Roberson
Walter Roberson el 21 de Mayo de 2018
We have no information about what your val() function does.
This code looks suspiciously close to using eval() for no good reason.
thisfile = sprintf('./Output/THOutput/Run%d/GM%d/pileDisp.out', i, k);
tmp3_ = importdata(thisfile);
Note: we have no idea what the size of the input data is, or what size you initialized dispPileNodes_* to. Or which line the error is occurring on.
  4 comentarios
Mos_bad
Mos_bad el 21 de Mayo de 2018
dispPileNodes_X is 2D and nPileNode=88
Walter Roberson
Walter Roberson el 21 de Mayo de 2018
Time to use the debugger.
dbstop if error
Run the code. When it errors out, check that i and k are scalars and that Max_dispPileNodes_X is a non-empty vector.

Iniciar sesión para comentar.

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by