簡體   English   中英

在MATLAB中的循環內更改變量值

[英]Change variable value inside loop in MATLAB

如何在循環內更改“ StartRow”和“ EndRow”的值?

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));

結束

您可以在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

將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
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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM