matlab裡求矩陣的梯度用什麼語句

2021-08-19 06:02:23 字數 3054 閱讀 1794

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是分塊對角矩陣,則分別對每個分塊矩陣求逆就行了。如果分塊矩陣不是分塊對角矩回陣,求逆則答比較麻煩,一般按普通矩陣求逆就行了。但是矩陣的逆的存在是有前提的,矩陣的行列式必須不等於零。你問題中的矩陣的行列式為零,所以逆矩陣不存在。分塊矩陣求逆有沒有什麼特殊要求,比如這個題能用分塊 分塊方式問題,分...