Dodaj do ulubionych

Octave łączony z (La)Tex

IP: *.kom / *.kom-net.pl 11.01.05, 21:15
witam, czy ktoś mógłby mi poradzić jak napisana w Octave-ie macierz przenieść
do LateX-a?? (np. ja korzystam z MiKTeXa) tak by wyswietliło ją w że tak
powiem "macierzowej" postaci, czyli z tymi nawiasami okalajacymi wnetrze
macierzy.
Obserwuj wątek
    • bobofruit99 Re: Octave łączony z (La)Tex 11.01.05, 21:28
      usenet.gazeta.pl/usenet/0,1.html?group=pl.comp.dtp.tex
    • user0001 może coś takiego? 12.01.05, 09:11
      Nie używałem octave od jakiegoś 1,5 roku, i program jest trochę koślawy. To
      forum usuwa wiodące spacje, więc wygląd jest okropny, ale emacs octave-mode
      sobie poradzi ;-)

      #!/usr/local/bin/octave

      function matrix2latex (mtx)

      [h, w] = size(mtx);

      # przygotowanie argumentu dla begin array
      cmat = ones(1,w) * 99;
      cstr = char(cmat);

      # przygotowanie linijek formatujacych dla tablicy
      genfmtline = "";
      for i = 1:w-1
      genfmtline = strcat(genfmtline, "%f & ");
      endfor
      genfmtline = strcat(genfmtline, "%f");
      # wiersze koncza sie sekwencja \\
      fmtline = strcat(genfmtline, "\\\\\n");
      # tylko ostatni jej nie ma
      lastfmtline = strcat(genfmtline, "\n");

      puts("\\begin{displaymath}\n");
      printf("\\left[ \\begin{array}{%s}\n", cstr);

      printf(fmtline, mtx(1:h-1,:));
      printf(lastfmtline, mtx(h,:));

      puts("\\end{array} \\right]\n");
      puts("\\end{displaymath}\n");

      endfunction

      a = [1, 2, 3; 2, 3, 4; 5, 6, 7; 2, 4, 5]
      matrix2latex(a)
      • Gość: zygi Re: może coś takiego? IP: *.kom / *.kom-net.pl 18.01.05, 16:55
        no dobra, po wpisaniu komendy
        >>matrix2latex(a);

        wyskakuje w octavie:

        \begin{displaymath}
        \left[ \begin{array}{ccc}
        0.234135 & 0.302095 & 0.522082\\
        0.472970 & 0.065238 & 0.912778\\
        0.881985 & 0.406480 & 0.280839
        \end{array} \right]
        \end{displaymath}

        i czy zna ktos komende, ktora powyzszy ciag zapisze w LaTeXie, a przynajmniej
        pliku *.tex??? Probowalem tak:
        >>fid=fopen("nazwa_pliku", "w");
        >>fprintf(fid, "%f", a);
        >>fclose(fid);
        wtedy zapisuje tylko wartosci liczb w jednym ciagu, jak wpisalem zamiast "a"--
        matrix2latex(a), to w pliku nic sie nie zapisuje:/

Nie masz jeszcze konta? Zarejestruj się


Nakarm Pajacyka