⑴ matlab工具箱
安裝的哪個版本的Matlab,這個函數是基本的圖像處理函數。可能是安裝路徑中升沒有加進去。進入File——Set Path,先Default一下,查看是否已經將toolbox加入。或者選擇賣纖老Add With Subfolders手豎升動添加。
⑵ matlab工具箱怎麼用
工具箱里的函數可以直接調用的。只要確定安裝好了工具箱,一般添加路徑後即可直接使用了。
添加路徑用addpath
⑶ 求鄰接矩陣任意兩點間的最短距離。matlab。程序在下面有沒有哪位大神能給解釋一下後邊的是什麼意思
根據lz要求,最合適的是floyd演算法
下面就扮燃慶是根據這個演算法寫的代碼,lz可以自己改成函數
D=[0 1 0 1 0 0
1 0 1 0 0 0
0 1 0 1 1 1
1 0 1 0 1 0
0 0 1 1 0 1
0 0 1 0 1 0];
n=length(D);
for k=1:n
for i=1:n
for j=1:n
if 0<D(i,k) & 0<D(k,j)
if D(i,j)==0 & i~=j
D(i,j)=D(i,k)+D(k,j);
else
D(i,j)=min(D(i,j),D(i,k)+D(k,j));
end
end
end
end
end
答案就儲存在D矩陣當中,這里
D =
0 1 2 1 2 3
1 0 1 2 2 2
2 1 0 1 1 1
1 2 1 0 1 2
2 2 1 1 0 1
3 2 1 2 1 0
演算法為O(n3)的,256^3=2^24 大概等於1600萬
效率上完廳握全能夠段咐忍受。
⑷ 我也需要用matlab的 遺傳演算法工具箱來優化路徑,對matlab才剛接觸,不知道怎麼用,急求
如果按照默認設置來運行GA,輸入fitness函數和未知量個數,就可以運行芹襲了。通常,優化問題的目標函數就是fitness函數。如果想重新設置緩鎮一下GA的參數,可在options處,設置,具體參數設置還要擾首粗看看幫助文件。
⑸ matlab編程動態規劃最短路徑問題
以前搞建模在網上下到的代碼,不是自己編的,但經過試驗可以用,分享了:
function len=dijkstra(Input)
%最短跡型陵路Dijkstra演算法,同時給出租數路徑,input為圖矩陣
row=size(Input,1);
%賦初值
% s_path=1;
distance=inf*ones(1,row);
distance(1)=0;
% flag(1)=1;
temp=1;
%求姿戚起點到各點的最短路的權
% s_path=ones(1,3);
while length(s_path)<row
pos=find(Input(temp, : )~=inf);
n=length(pos);
flag=ones(1,n);
for i=1:n
if (isempty(find(s_path==pos(i),1)))&&(distance(pos(i))>...
(distance(temp)+Input(temp,pos(i))))
distance(pos(i))=distance(temp)+Input(temp,pos(i));
flag(pos(i))=temp;
end
end
k=inf;
for i=1:row
if (isempty(find(s_path==i,1)))&&(k>distance(i))
k=distance(i);
temp_2=i;
end
end
s_path=[s_path,temp_2];
temp=temp_2;
end
%用追溯法得到起點到各點的最短路的路線
len=zeros(1,row);
for endpoint=1:row
path=0; %初始化
path(1)=endpoint;
i=1;
while path(i)~=1
path(i+1)=flag(path(i));
i=i+1;
end
path(i)=1;
path=path(end:-1:1); %最短路徑
short_distance=distance(endpoint); %最短路徑權
len(endpoint)=short_distance; %起點到各點的最短距離
pathall=path; %總路徑矩陣
end
len=len(25:end);
%{
disp('起點到各點的最短路徑:');
celldisp(pathall);
%設法只畫出最短路徑
em=find(w==inf);
w(em)=0;
h = view(biograph(w,[],'ShowWeights','on'));
%}
郵箱給你發了個資料,多年前搞的,估計是忘了,也許這個函數有點問題,你按資料里的做吧
⑹ 一個5000乘上5000的稀疏矩陣,如何利用MATLAB求解平均最短路徑,演算法要求用dijkstra
確實有點大的
兩個指定頂點之間的最短路徑
問題如下:給出了一個連接指陵若干個城鎮的鐵路網路,在這個網路的兩個指定城鎮間,找一條最短鐵路線。
以各城鎮為圖G的頂點,兩城鎮間的直通鐵路為圖G相應兩頂點間的邊,得圖G。對
G的每一邊e,賦以一個實數)(ew—直通鐵路的長度,稱為e的權,得到賦權圖G。G的
子圖的權是指子圖的各邊的權和。問題就是求賦權圖G中指定的兩個頂點00,vu間的具最小權的軌。這條軌叫做00,vu間的最短路,它的權叫做00,vu間的距離,亦記作),(00vud。
求最短路已有成熟的演算法:迪克斯特拉(Dijkstra)演算法,其基本思想是按距0u從近到遠為順序,依次求得0u到G的各頂點的最短路和距離,直至0v(或直至G的所有頂點),演算法結束。為避免重復並保留每一步的計算信息,和逗雹採用了標號演算法。下面是該演算法。
(i) 令0)(0ul,對0uv,令)(vl,}{00uS,0i。 (ii) 對每喚帆個iSv(iiSVS\),用
)}()(),({minuvwulvli
Su
代替)(vl。計算)}({minvli
Sv,把達到這個最小值的一個頂點記為1iu,令}{11iiiuSS。
(iii). 若1||Vi,停止;若1||Vi,用1i代替i,轉(ii)。
演算法結束時,從0u到各頂點v的距離由v的最後一次的標號)(vl給出。在v進入iS之前的標號)(vl叫T標號,v進入iS時的標號)(vl叫P標號。演算法就是不斷修改各項點的T標號,直至獲得P標號。若在演算法運行過程中,將每一頂點獲得P標號所由來的邊在圖上標明,則演算法結束時,0u至各項點的最短路也在圖上標示出來了。
例1 某公司在六個城市126,,,cccL中有分公司,從ic到jc的直接航程票價記在下述矩陣的),(ji位置上。(表示無直接航路),請幫助該公司設計一張城市1c到其它城市間的票價最便宜的路線圖。
055252510
5
⑺ 急求matlab車輛調度遺傳演算法代碼,需求車輛行駛最優路徑。
function [path,lmin]=ga(data,d) %data為點集,d為距離矩陣,即賦權圖
tic
%======================
sj0=data;%開環最短路線
%=================================
% sj0=[data;data(1,:)]; %閉環最短路線
%=========================
x=sj0(:,1);y=sj0(:,2);
N=length(x);
%=========================
% d(N,:)=d(1,:);%閉環最短路線
% d(:,N)=d(:,1);%距離矩陣d
%======================
L=N; %sj0的長度
w=800;dai=1000;
%通過改良吵侍旦圈演算法選取優良父代A
for k=1:w
c=randperm(L-2);
c1=[1,c+1,L];
flag=1;
while flag>0
flag=0;
for m=1:L-3
for n=m+2:L-1
if d(c1(m),c1(n))+d(c1(m+1),c1(n+1))<d(c1(m),c1(m+1))+d(c1(n),c1(n+1))
flag=1;
c1(m+1:n)=c1(n:-1:m+1);
<a href="https://www..com/s?wd=end&tn=44039180_cpr&fenlei=-CEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-" target="_blank" class="-highlight">end</a>
<a href="https://www..com/s?wd=end&tn=44039180_cpr&fenlei=-CEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-" target="_blank" class="-highlight">end</a>
<a href="https://www..com/s?wd=end&tn=44039180_cpr&fenlei=-CEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-" target="_blank" class="-highlight">升擾end</a>
end
J(k,c1)=1:L;
end
J=J/L;
J(:,1)=0;J(:,L)=1;
rand('state',sum(clock));
%遺傳演算法實現過程
A=J;
for k=1:dai %產生0~1 間隨機數列進行編碼
B=A;
c=randperm(w);
%交配產生子代B
for i=1:2:w
F=2+floor(100*rand(1));
temp=B(c(i),F:L);
B(c(i),F:L)=B(c(i+1),F:L);
B(c(i+1),F:L)=temp;
end;
%變異產生子代談答C
by=find(rand(1,w)<0.1);
if length(by)==0
by=floor(w*rand(1))+1;
end
C=A(by,:);
L3=length(by);
for j=1:L3
<a href="https://www..com/s?wd=bw&tn=44039180_cpr&fenlei=-CEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-" target="_blank" class="-highlight">bw</a>=floor(1+fix(rand(1,3)*N)); %產生1-N的3個隨機數
<a href="https://www..com/s?wd=bw&tn=44039180_cpr&fenlei=-CEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-" target="_blank" class="-highlight">bw</a>=sort(<a href="https://www..com/s?wd=bw&tn=44039180_cpr&fenlei=-CEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-" target="_blank" class="-highlight">bw</a>);
C(j,:)=C(j,[1:bw(1)-1,bw(2)+1:bw(3),bw(1):bw(2),bw(3)+1:L]);
end
G=[A;B;C];
<a href="https://www..com/s?wd=TL&tn=44039180_cpr&fenlei=-CEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-" target="_blank" class="-highlight">TL</a>=size(G,1);
%在父代和子代中選擇優良品種作為新的父代
[<a href="https://www..com/s?wd=dd&tn=44039180_cpr&fenlei=-CEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-" target="_blank" class="-highlight">dd</a>,IX]=sort(G,2);
temp=[];
temp(1:<a href="https://www..com/s?wd=TL&tn=44039180_cpr&fenlei=-CEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-" target="_blank" class="-highlight">TL</a>)=0;
for j=1:<a href="https://www..com/s?wd=TL&tn=44039180_cpr&fenlei=-CEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-" target="_blank" class="-highlight">TL</a>
for i=1:L-1
temp(j)=temp(j)+d(IX(j,i),IX(j,i+1));
end
end
[DZ,IZ]=sort(temp);
A=G(IZ(1:w),:);
end
path=IX(IZ(1),:)
% for i=1:length(path)
% path(i)=path(i)-1;
% end
% path=path(2:end-1);
lmin=0;l=0;
for j=1:(length(path)-1)
<a href="https://www..com/s?wd=t1&tn=44039180_cpr&fenlei=-CEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-" target="_blank" class="-highlight">t1</a>=path(j);t2=path(j+1);
l=d(<a href="https://www..com/s?wd=t1&tn=44039180_cpr&fenlei=-CEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-" target="_blank" class="-highlight">t1</a>,t2);
lmin=lmin+l;
end
xx=sj0(path,1);yy=sj0(path,2);
plot(xx,yy,'r-o');
axis equal
toc
⑻ 如何使用matlab中的工具箱
首先,將下載的工具箱文件解壓,將文件夾復制到MATLAB安裝目錄下toolbox文件夾下。
其次,在MATLAB命令行中輸入如下命令:
>>cd D:\MATLAB7\toolbox\piotr_toolbox % 找到你的工具箱
>> addpath(genpath('D:\MATLAB7\toolbox\piotr_toolbox')) %增加路徑
>> savepath %永久保存路徑
最後,檢查是否成功:
>>which hog %隨便輸入所加入工具箱中的一個m文件
D:\MATLAB7\toolbox\piotr_toolbox\channels\hog.m %得到此文件路徑,即載入正確
⑼ Matlab如何安裝新的工具箱
至於Matlab工具箱安裝中涉及到了Matlab的搜索路徑、工作目錄、當前路徑、用戶路徑等好多術語,我這里不想多說什麼,感興趣的網友,可以直接查看Matlab的幫助系統,在那裡你可以得到最直接的答復,但是你需要一定的英文基礎哦
添加工具箱的方法很多,所有方法都是為了達到同一個目的,將工具箱的所在路徑添加到Matlab的搜索路徑下就可以了(將工具箱復制到toolbox目錄然後在set
path裡面添加這個目錄就可以用了)
下面介紹一種最簡單的操作吧,下面以安裝mathmodl(
數學建模
工具箱)為例進行說明a、將你所需要安裝的工具箱解壓到$MatlabRoot\toolbox中(其實任意路徑都是可以的,但是為了方便管理,我們一般都安裝在這里),$MatlabRoot是你的Matlab安裝路徑,你可以在Matlab中輸入matlabroot命令獲取(1)在Matlab輸入如下內容(當你可以直接使用
資源管理器
進入toolbox目錄)
>>
matlabrootans
=D:\Program
Files\MATLAB\R2008a
>>
winopen(ans)復制代碼(2)此時會自動跳到Matlab的安裝目錄下,雙擊打開目錄下的toolbox文件夾(3)將mathmodl工具箱復制到toolbox中
b.將剛才mathmodl的路徑添加到Matlab搜索路徑下(可以使用Matlab命令行,也可是用Matlab菜單操作,為了簡便我們這里使用第二種)(1)在Matlab中如下操作,File——>Set
Path...——>點擊Add
with
subfolders...(2)在瀏覽文件中,選擇剛才的安裝路徑$MatlabRoot/toolbox/mathmodl後,點擊確定
(3)此時返回到Set
Path對話框,點擊左下角的保存按鈕(記住一定要保存),此時工具箱徹底安裝完畢,點擊Close關閉對話框c.測試下新安裝工具箱是可以使用,在Matlab中輸入如下內容
>>mathmodl%輸入工具箱名稱,此時一般會返回該工具箱的說明,也就是mathmodl路徑下content.m中的內容
%在命令行中輸入如下,此時會返回mathmodl路徑下所有的文件
>>what
mathmodl
D:\My
Documents
\MATLAB\DYNPROG.M復制代碼d.工具箱更新緩存,否則每次Matlab啟動的時候會給出警告(1)File——>Preferences——>General——>選中enable
toolbox
path
cache——>點擊updata
toolbox
path
cache(2)完成上面的就可以關閉Preferences對話框了(3)此時一個工具箱徹底安裝完畢(4)如果以後啟動Matlab的時候警告說toolbox
path
cache失效,那麼重復第一步操作就萬事OK了
⑽ matlab需要安裝哪些工具箱
至於Matlab工具箱安裝中涉及到了Matlab的搜索路徑、工作目錄、當前路徑、用戶路徑等好多術語。
MATLAB和Mathematica、Maple並稱為三大數學軟體。它在數學類科技應用軟體中在數值計算方面首屈一指。
MATLAB可以進行矩陣運算、繪制函數和數據、實現演算法、創建用戶界面、連接其他編程語言的程序等,主要應用於工程計算、控制設計、信號處理與通訊、圖像處理、信號檢測、金融建模設計與分析等領域。
(10)matlab工具箱最短路線擴展閱讀:
編程環境:
MATLAB由一系列工具組成。這些工具方便用戶使用MATLAB的函數和文件,其中許多工具採用的是圖形用戶界面。包括MATLAB桌面和命令窗口、歷史命令窗口、編輯器和調試器、路徑搜索和用於用戶瀏覽幫助、工作空間、文件的瀏覽器。
隨著MATLAB的商業化以及軟體本身的不斷升級,MATLAB的用戶界面也越來越精緻,更加接近Windows的標准界面,人機交互性更強,操作更簡單。
而且新版本的MATLAB提供了完整的聯機查詢、幫助系統,極大的方便了用戶的使用。簡單的編程環境提供了比較完備的調試系統,程序不必經過編譯就可以直接運行,而且能夠及時地報告出現的錯誤及進行出錯原因分析。