Subscripted assignment dimension mismatch

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

Réponses (1)

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 commentaires

Mos_bad
Mos_bad le 21 Mai 2018
Modifié(e) : Walter Roberson le 21 Mai 2018
the error is occurring on the lines :
Max_max_dispPileNodes_X(i,k) = max(abs(Max_dispPileNodes_X));
Max_max_dispPileNodes_Y(i,k) = max(abs(Max_dispPileNodes_Y));
Walter Roberson
Walter Roberson le 21 Mai 2018
Either dispPileNodes_X is somehow 3D, or nPileNode < 1 and dispPileNodes_X was initialized to empty.
Mos_bad
Mos_bad le 21 Mai 2018
dispPileNodes_X is 2D and nPileNode=88
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.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Loops and Conditional Statements dans Centre d'aide et File Exchange

Question posée :

le 21 Mai 2018

Commenté :

le 21 Mai 2018

Community Treasure Hunt

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

Start Hunting!

Translated by