次のように、data.txt に 2 列の xy データがあります。
0 0
1 1
2 4
3 9
4 16
5 25
ここで、x が最初の列で f(x) が 2 番目の列である関数 f(x) を定義し、この関数の値を次のように出力できるようにします。
f(2)
これは私に4を与えるはずです。
どうすればこれを達成できますか?
次のように、data.txt に 2 列の xy データがあります。
0 0
1 1
2 4
3 9
4 16
5 25
ここで、x が最初の列で f(x) が 2 番目の列である関数 f(x) を定義し、この関数の値を次のように出力できるようにします。
f(2)
これは私に4を与えるはずです。
どうすればこれを達成できますか?
参照として持っている数値の間の数値の戻り値が必要であると仮定すると、線形補間を使用できます。
function y= linearLut(x)
xl = [0 1 2 3 4 5];
yl = [0 1 4 9 16 25];
y = interp1(xl,yl,x);
end
関数のより一般的なバージョンは次のようになります。
function y= linearLut(xl,yl,x)
y = interp1(xl,yl,x);
end
そして、無名関数を使用して特定のインスタンスを作成できます。
f = @(x)(linearLut([0 1 2 3 4],[0 1 4 9 16],x));
f(4);
配列内の正しい値を見つけるだけでよい場合 (補間なし) は、次を使用できます。
function out=ff(b)
a = [0 1 2 3 4 5 ; 3 4 5 6 7 8]';
[c,d]=find(a(:,1)==b);
out = a(c,2);
を使用してファイルをインポートしtextread()
、 を使用find
して正しい行を選択できます。
私の頭から出て、テストされていません:
function y = findinfile(x)
m = textread(data.txt)
ind = find(m(:,1)==x)
y = m(ind,2)
end