MATLAB如何为循环更改某些特定的数字01到10?

时间:2014-07-09 02:13:04

标签: matlab loops for-loop numbers

下面的代码是我的代码。

我想在第3行和第18行将s01更改为s10。 (我注意到了那些)

第一行和最后一行

  

for和结束功能

只是我的尝试。

for i=1:10; % I don't need to only use this

M=dlmread('a02_s01_e02_skeleton.txt', ' '); % here s01 have to change s01, s02,..., s10
M(any(M'==40),:) =[];
K = M - kron(M(1:40:end,:), ones(40,1));

    for ii=1:20

    start = 2 + (ii-1)*2;
    K1=K(start:40:end,1);
    K2=K(start:40:end,2);

    subplot(2,1,1); plot(K1); xlabel('frame'); ylabel('x'); grid on;
    subplot(2,1,2); plot(K2); xlabel('frame'); ylabel('y'); grid on;

    frm = getframe( gcf );

    targetFolderName = 'C:\Users\kanje\Desktop\graph\a02_s01_e02';  
    % here also change s01 to s10

    imwrite( frm.cdata, fullfile( targetFolderName, sprintf( 'con%d.jpg', ii ) ) ); 

    end;
end;

1 个答案:

答案 0 :(得分:1)

尝试以下更改:

M=dlmread(['a02_s' num2str(i,'%02.f') '_e02_skeleton.txt'], ' ')

这样做是连接三个字符串,其中中间的一个字符串从01变为10.如果数字只有一个数字,num2str将返回一个带有前导零的两个字符的字符串。

对于第二个字符串,使用与此相同的技术。

targetFolderName = ['C:\Users\kanje\Desktop\graph\a02_s' num2str(i,'%02.f') '_e02'];