1

私は Matlab に 2 つの行列を持っていAます。これらを取り込んで にマップするB関数を出力する簡単な方法を見つけようとしています。これは、 whereとareの形式の関数と同じくらい簡単なはずですが、できません。今日は私の基本的な数学のスキルを覚えているようです。Matlabでこれを行う簡単な方法はありますか?ABB=Ax+yxy

4

1 に答える 1

0

編集

これは、コメントで説明されている OP の元の質問に対する回答です。

2 つの要素b1b2fromBと同じ要素a1a2fromを取りAます。ことを確認してくださいa1 ~= a2。のすべての要素Aが同じ場合、問題は簡単です。次に、計算します

x = (b1-b2) / (a1-a2) ;
y = b1 - a1*x;
err = B - A*x - y;
total_error = sum(abs(err(:)));

xyが式を満たさない場合、 と はtotal_error > 0存在xしませんy


実際、x と y が単なる数値の場合は、次のようにできます。

B = A*x + y;

xMatlab は、 の各要素に数値をブロードキャストすることにより、行列時間のスカラー演算を行うことができAます。

xがベクトルで意味がある場合はA*x、同じことができます。

yが と同じサイズのスカラーまたはベクトルの場合、同じA*xことができます。

于 2012-10-10T23:51:07.900 に答える