Subscripted assignment dimension mismatch
Ältere Kommentare anzeigen
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
Antworten (1)
Walter Roberson
am 21 Mai 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 Kommentare
Mos_bad
am 21 Mai 2018
Bearbeitet: Walter Roberson
am 21 Mai 2018
Walter Roberson
am 21 Mai 2018
Either dispPileNodes_X is somehow 3D, or nPileNode < 1 and dispPileNodes_X was initialized to empty.
Mos_bad
am 21 Mai 2018
Walter Roberson
am 21 Mai 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.
Kategorien
Mehr zu Loops and Conditional Statements finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!