Subscripted assignment dimension mismatch
    3 ビュー (過去 30 日間)
  
       古いコメントを表示
    
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
0 件のコメント
回答 (1 件)
  Walter Roberson
      
      
 2018 年 5 月 21 日
        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 件のコメント
  Walter Roberson
      
      
 2018 年 5 月 21 日
				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.
参考
カテゴリ
				Help Center および File Exchange で Loops and Conditional Statements についてさらに検索
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!