Matlab, Octave Tips

はじめに

時々必要になるが、その時には多分忘れているであろう知識を書き残しておく。自分が見て方針を思い出すためのメモなので基本的に解説はしないし、ここに書いてあるコードは厳密であるとは限らない。

(Octave 8.2.0) 行列の最大要素とインデックス

A = [[1 2 9]; [7 5 6]; [4 8 3]];
[m1, idx1] = max(A);
[m2, idx2] = max(m1);
i = idx1(idx2); j = idx2;
printf("max value is %d, idx: (%d, %d)\n", A(i,j), i, j)
% output: "max value is 9, idx: (1, 3)"

(Octave 9.1.0) 関数内から大域変数にアクセスする

pkg load symbolic;

global A T t f;
syms A T t f;
assume T t real;
assumeAlso(A, 'positive');
assumeAlso(T, 'positive');

f(A,T,t) = A*sin(sym(2)*pi*t/T);

function h_fig = plot_f(A, T, t_0, t_1)
    global t f;

    mustBeLessThan(t_0, t_1);
    h_fig = figure();
    fplot(f(A,T,t), [t_0 t_1]);
    title("f(t) = A*sin(2πt/T)"); xlabel("t"); ylabel("f(t)");
    grid on; grid minor on; legend off;
endfunction

plot_f(sym(1), 1/sym(2), 0, 1);

投稿者: motchy

An embedded software and FPGA engineer for measuring instrument.

コメントを残す