私は、ファイルに保存された等値面を作るために使用される方程式を持っており、どの方程式がどのファイルに属しているかを追跡する必要があります。したがって、私はOctaveスクリプトが作成したファイルに手作業でラベルを貼ることなく、それらを生成した式にラベルを付ける必要があります。 これが今の私のコードです:式を文字列として取得するにはどうすればよいですか?
clf;
function [f, v] = doiso(dodraw)
m = 3;
dim = -m:0.1:m;
if (dodraw > 0)
dim = -m:0.6:m;
endif
[x,y,z] = meshgrid(dim, dim, dim);
func = cos(x) .* sin(y) + cos(y) .* sin(z) + cos(z) .* sin(x);
if (dodraw > 0)
isosurface(func, 0);
else
[f, v] = isosurface(func, 0);
endif
endfunction
#draw
doiso(1);
axis equal;
title("isosurface() of the function");
#saveq
[f, v] = doiso(0);
vertface2obj(v, f, strcat("objs/", int2str(time * 1000), "out.obj"));
保存したファイルは、長い番号はタイムスタンプで、罪とCOSを含む式は、コードと同じ(ファイルを生成する式であるcos(x) . sin(y) + cos(y) . sin(z) + cos(z) . sin(x) 1513441860368.obj
のような名前を持つ必要があります)。無効な文字は、ファイル名文字列で削除または置換する必要があります。
オンラインリソースでは、式を印刷するとは言えません。数字を印刷するか方程式を解くだけです。あなたがこれを行うことができます
多分私は無効な文字を置き換えることができますか?要点は、Octaveに式の文字列表現を与えることができないということです。 – douira
私はファイル名として数式を保存するのは良い考えではないと思います。数式を使って保存したファイルに文字列を追加したいと考えています。 – Andy
Andyが言ったこと。または、実際に必要なものが関数を式に関連付ける方法であれば、単にプログラムで参照できる外部テーブルを作成するだけです。例えば。 'Equations.f1 =" cos(x) "; Equations.f2 = "sin(x)";など。 –