Octave基本操作

4309 ワード

文書ディレクトリ
  • manipulating data
  • plotting
  • control statements, iterate

  • manipulating data
    3*2のマトリクスを作成a=[1 2 ; 3 4 ; 5 6]
    size(a)は[32]のマトリクスsize(a)である
    size(size(a))は、[12]の行列size(size(a))である
    size(a,1)とsize(a,2)は、numpyのaxis=0と1に相当する行と列数をそれぞれ表示することができるが、octaveの下付き記号と座標軸記号は1からsize(a,1) size(a,2)であるsize(a)はマトリクスに一般的に用いられ、length(v)はベクトルに一般的に用いられる.ls, cd, pwdはlinuxと同じです
    データの読み込み(デフォルトはスペース区切りであるべきで、値付け文を付けないと自動的にファイル名を変数名とする)load features.datは、現在の作業ディレクトリの下にあるfeaturesを読み出す.datファイルは、スペースで区切られてマトリクスになり、ファイルに名前情報が含まれていない場合はfeaturesという変数が生成されます.save hello.mat v vという変数をhelloに保存する.matこのファイルでclearですべての変数をクリアしてload hello.matで読み込むと、vという変数が自動的に生成されます.save hello.txt v -asciiは、ユーザに対してより友好的なフォーマットを格納するが、名前、行列数などの変数の情報は削除される.whoは変数のリストを表示し、whosは変数の詳細を表示し、clearは変数をクリアし、いずれもパラメータを追加することができる.a(m:n)は、行列についても変数についても、m-n要素のみを表示します.行列は、列-行で数えられます.たとえば、次のようにします.
    [1 2 3]
    [4 5 6]
    [7 8 9](3:5) = [7 2 5]
    
    a(3,2)行2列の要素をとる
    行列は一般的にa(:, [1 3]):すべての行、1および3列を使用します.a(:, [1:3])すべての行、1~3列です.a([1:3],:)-3行、すべての列
    スライス方式で付与することができ、もちろんターゲットとデータの形状が同じm=magic(3)で2行目:m(2,:)=[1 1 1]を修正して最後に1行目:m(4,:)=[1 1 1]を追加し、m(n,:)=[x x x]でn>行数を変更すると、データを最後に増加する
    append方式増加データ:m = [m, [ 1; 1; 1; 1; 1]]は最後に1列増加し、一番前にm=[[1; 1; 1],m]列増加するm(:)行列の要素をベクトルにするc=[a b] c=[a,b]横方向に2つのマトリクスを組み合わせ、c=[a;b]縦方向に2つのマトリクスを組み合わせます.a=[1 2;3 4; 5 6] b=[11 12;31 41; 25 26] c=[1 1;2 2] a*b点乗a.*b元素乗a/b点除a./b*元素除a^2 a*a点乗、形状の関係でaは方陣才^2 a.^2元素平方前面帯である.のはすべて要素演算log exp abs...a+ones(size(a))はこのように1をプラスすることができて、直接a+1をプラスすることができます...a'max(a)に回転すると、2つの値が返されます.1つは最大値で、もう1つは位置です.(パラメータが行列であれば、2つのベクトルを返す)max(a,[],1)列別最大値(デフォルト動作)max(a,[],2)行別max(a,n) aがベクトルであれ行列であれ、各要素はnと比較して最大値を返すa
    find(a a n , a , a(:) に を します.2つの を すことができます.1つ は つかった の 、2つ は つかった の です.[r, c] = find(a>1) magic(n)は、1−n 2 n^2 n 2の を むn*nの を し、 、 、および の を した が しいsum(a) ごとに prod(a) の .aはベクトル に1つのスカラーを し、aはマトリクス に ごとに1つのスカラーを すfloor(a) を り てるceil(a) rand(n) 0-1 の ランダム n*nのマトリクスmax(rand(3), rand(3))の2つの3*3 の の ( じ の の )max(a(:)) max(max(a)) m = magic(10) sum(m,1)sum(m,2)sum(sum(m.*eye(5))) m の の を するflipud(eye(5)) 、 を るために できますpinv(m)
    plotting
    t = [0:0.01:0.98];
    y1= sin(2*pi*4*t);
    y2= cos(2*pi*4*t);
    plot(t,y1);
    hold on;
    plot(t,y2,'r');
    xlabel('time');
    ylabel('value');
    legend('sin', 'cos');
    title('my plot');
    cd 'f:';
    print -dpng 'myplot.png';
    close;
    

    の が に されます.
    t = [0:0.01:0.98];
    y1= sin(2*pi*4*t);
    y2= cos(2*pi*4*t);
    figure(1); plot(t,y1);
    figure(2); plot(t,y2,'r');
    

    の が じ に
    subplot(1,2,1);
    plot(t,y1);
    subplot(1,2,2);
    plot(t,y2,'b');
    axis([x_lo, x_hi, y_lo, y_hi]); %      ,x_lo:x    ,    
    clf; %    ,       
    

    ???
    m = magic(5);
    imagesc(m);
    imagesc(m), colorbar, colormap gray; % 
    

    control statements, iterate
    のforループ :
    v = zeros(10,1);
    for i=1:10,
      v(i) = 2^i;
    end;
    v
    

    のこともできます.
    idx = 1:10;
    for i=idx, disp(i);
    end;
    

    while:
    i = 1
    while i<=5,
    	v(i) = 100;
    	i+=1;
    end;
    

    if & while:
    i = 1;
    while true,
      v(i) = 999;
      i = i+1;
      if i == 4,
      	break;
     end;
    end;