1樓:匿名使用者
參考**:
% 生成測試資料
x = rand(100,1);
y = rand(100,1);
k = 2;
a = 1.5;
b = 2.5;
z = k*(x.^a).*(y.^b);
% 資料加入噪聲
z = z + randn(size(z))*0.1;
% 資料擬合
f=inline('c(1)*x(:,1).^c(2).*x(:,2).^c(3)','c','x');
c=lsqcurvefit(f,[1 1 1],[x y],z)
% 繪圖
[x,y] = meshgrid(linspace(min(x),max(x),20),linspace(min(y),max(y),20));
z = reshape(f(c, [x(:), y(:)]), size(x));
clfa = 0.5;
mesh(x,y,z,'facealpha',a,'edgealpha',a);
hold on
plot3(x,y,z,'r.')
view(15,5)
xlabel('x'); ylabel('y'); zlabel('z');
擬合結果:
c =1.9917 1.3921 2.4509
與真實模型的引數[2 1.5 2.5]吻合。
如何用matlab畫二維函式影象
如果是初學 bai,建議使用du嚴格的數值繪圖命zhi令,在清楚函式定義域的dao前提下畫圖 clear all clc x 3 0.01 3 y exp x plot x,y grid on axis 3,3,2,6 log x 這個函式版,如果不限定權定義域的話,會有複數解的。clear all...
matlab中怎樣將三維陣列的維賦給二維如A1)賦給二維的B
1,直接賦值 b a 1 試了一下可以。2.先用次sum求每行元素和,因為要求 每個元素都除以每列之和 所以得用1次for迴圈 1 三維陣列中的各個為也是二維陣列,所以賦值可以直接賦即可!假設a是三維陣列,b是二維陣列 b a 1 b a 2 b a 3 分別把a的三維中的 一 二 三維賦給b。2 ...
用rand 函式填寫並輸出二維陣列
include include include define n 10 int main void srand unsigned time null int i,j,a n n for i 0 i 呃.來這裡問你往前走.包括 包含 包括使用名稱空間std 國際主要 整數噸 0 函式srand 無符號...