1樓:匿名使用者
使用gradient語句即可實現求梯度功能。
具體語法如下:
[fx, fy] = gradient (f)其中fx表示橫向的梯度(相對於原矩陣f而言),fy表示縱向的梯度。
示例如下:
2樓:恩惠妮阿加西
matlab裡求矩陣的梯度使用的語句,**如下:
(matlab環境下)
gradx = [1 -1];
grady = [1 -1];
conx = zeros(row,col);
cony = zeros(row,col);
for row = 2:row
for col = 2:col
cellx = [i(row,col-1) i(row,col)];
celly = [i(row-1,col) i(row,col)];
conx(row,col) = sum(sum(double(gradx).*double(cellx)));
cony(row,col) = sum(sum(double(grady).*double(celly)));
endend
grad(:,:,1) = conx; % x方向梯度grad(:,:,2) = cony; % y方向梯度
matlab 中,已知函式表示式,怎麼求梯度和海賽矩陣(表示式)
3樓:森林格格
^syms x y z
f=x^bai2+x*y+z;
gradient=jacobian(f,[x,y,z])%求梯度duzhi
%gradient =
%[ 2*x + y, x, 1]
x=-1;y=2;z=3;
tiduzhi=eval(gradient) %求在(dao-1,
專2,3)的
屬梯度值
%%tiduzhi =
%% 0 -1 1
4樓:匿名使用者
使用抄襲jacobian指令,
參考文獻
怎麼用matlab求m檔案中的函式的梯度
5樓:匿名使用者
試試,下面的**,如果xi是實數將eval(['syms ',sx,' ',sm])改為eval(['syms ',sx,' ',sm,' real']),計算結果可能更簡潔一些,這裡由於不知道
回你的m值,所以也將其引數化答了,你可以將其換為你需要的值。若有問題,可繼續追問
x=;m=;
for i=1:24
sx=['x',num2str(i)];
sm=['m',num2str(i)];
eval(['syms ',sx,' ',sm])eval(['x=[x,',sx,'];']);
eval(['m=[m,',sm,'];']);
endsh=sum(x.^2)/2*1e6;
y=0;
for i=1:length(x)
y=y+sum(x(1:i));
sh=sh+(y-sum(x(1:i))/2)^2*m(i);
endjac=jacobian(sh,x);
jac'
6樓:匿名使用者
舉個例子
syms x y z
f=x^2+x*y+z;
gradient=jacobian(f,[x,y,z])%求梯度%gradient =
%[ 2*x + y, x, 1]
x=-1;y=2;z=3;
tiduzhi=eval(gradient) %求在(-1,2,3)的梯度值
%%tiduzhi =
%% 0 -1 1
對於補充的問題,那就沒什麼函式,你回直接用diff求微分答算了gradient=[diff(f,x),diff(f,y),diff(f,z)]
matlab請指教,關於求影象梯度
7樓:匿名使用者
求梯來度時,已經轉成了自double了,所以結果要轉回unit8 程式修改後
clear all
close all
i = imread('1灰度圖.jpg');
hy = fspecial('sobel');
hx = hy';
iy = imfilter(double(i), hy, 'replicate');
ix = imfilter(double(i), hx, 'replicate');
gradmag = sqrt(ix.^2 + iy.^2);
figure('units', 'normalized', 'position', [0 0 1 1]);
subplot(1, 2, 1); imshow(i,), title('灰度增強圖');
subplot(1, 2, 2); imshow(gradmag/255,), title('梯度幅值影象');
imwrite(gradmag,'2梯度幅值影象.jpg')%儲存影象為檔案
8樓:匿名使用者
你必須將gradmap轉換成影象資料,好像是mat2img(gradmap),具體的函式我記不大清楚了,你查查幫助。
matlab解決求影象某點梯度的問題
9樓:匿名使用者
加入你的二值影象存放在矩陣i中
那麼[dx dy]=gradient(i);
得到的兩個矩陣 dx dy,和i大小一樣,對應於原來矩陣i分別在x,y方向的梯度
想提取那一點,直接dx dy中提取就可以了例如想要影象中10行,20列那點畫素的梯度xx=dx(10,20);
yy=dy(10,20);
得到的xx,yy即使這點x方向和y方向的梯度
Matlab如何求矩陣中最大值的位置
如果有矩陣a,那麼 c,i max a c就是最大元素,i就是最大元素所在的位置。有多個最大值時,返回最先找到的 matlab中求乙個矩陣的最大值及位置用哪個函式?舉個例du子 a 1 2 3 4 5 6 a 1 2 3 4 5 6 max max a ans 6 x y find a max ma...
matlab裡的是怎麼用的,Matlab中 的用法
例子 1 baipunct function handle creation 在匿名函式du中表示函式控制代碼。zhi2 例如ln x 在matlab中是沒dao有定義的,正確版表示是log x 但如果要直權觀表示自然對數,意義用以下語句表示 ln x log x 執行後,ln 4 log 4 即用...
這樣的矩陣可以用分塊矩陣求逆來求嗎
如果a是分塊對角矩陣,則分別對每個分塊矩陣求逆就行了。如果分塊矩陣不是分塊對角矩回陣,求逆則答比較麻煩,一般按普通矩陣求逆就行了。但是矩陣的逆的存在是有前提的,矩陣的行列式必須不等於零。你問題中的矩陣的行列式為零,所以逆矩陣不存在。分塊矩陣求逆有沒有什麼特殊要求,比如這個題能用分塊 分塊方式問題,分...