2017-05-31 17 views
0

ループ内の 'StartRow'と 'EndRow'の値を変更するにはどうすればよいですか?MATLABのループ内の変数値を変更します

for k = 1:11 
filename = 'file.txt'; 
... 

startRow = 1422; %1564, 1706, 1848, 1990, 2132, 2274, 2416, 2558, 2700, 2842 
endRow = 1562; %1704, 1846, 1988, 2130, 2272, 2414, 2556, 2698, 2840, 2982 
... 

f=figure; 
plot(...); 

saveas(f,sprintf('fig%d.png',k)); 

エンド

答えて

1

あなたは右のforループの前にリストにstartRowendRowのすべての値を格納し、ループ内でこれらの変数の値を変更するには、リストを反復処理することができます。

startRowList = [1422, 1564, 1706, 1848, 1990, 2132, 2274, 2416, 2558, 2700, 2842]; 
endRowList = [1562, 1704, 1846, 1988, 2130, 2272, 2414, 2556, 2698, 2840, 2982]; 

for k = 1:11 
    filename = 'file.txt'; 
    ... 

    startRow = startRowList(k); 
    endRow = endRowList(k); 
    ... 

    f=figure; 
    plot(...); 

    saveas(f,sprintf('fig%d.png',k)); 
end 
+0

作品!ありがとうございました! –

1

startRowとendRowをループの外側に置き、ループインデックスを使用してループ内で呼び出します。

startRow = [1422 1564, 1706, 1848, 1990, 2132, 2274, 2416, 2558, 2700, 2842] ; 
endRow = [1562 1704, 1846, 1988, 2130, 2272, 2414, 2556, 2698, 2840, 2982]; 
n = length(startRow) ; 
for k = 1:n 
    filename = 'file.txt'; 
    thestart = startRow(k) ; 
    theend = endRow(k) ; 
    ... 

... 

f=figure; 
plot(...); 

saveas(f,sprintf('fig%d.png',k)); 
end 
1
starts = [1422, 1564, 1706, 1848, 1990, 2132, 2274, 2416, 2558, 2700, 2842]; 
ends = [1562, 1704, 1846, 1988, 2130, 2272, 2414, 2556, 2698, 2840, 2982]; 

for k = 1:11 
    ... 
    startRow = starts(k); 
    endRow = ends(k); 
    ... 
end 
関連する問題