資源簡介
這是最優傳輸理論(optimal transport theory)實現的工具箱,里面包含了完整的matlab代碼。代碼絕對可行!!!

代碼片段和文件信息
clear?all;
clc;
flat?=?@(x)x(:);
Cols?=?@(n0n1)sparse(?flat(repmat(1:n1?[n0?1]))?...
?????????????flat(reshape(1:n0*n1n0n1)?)?...
?????????????ones(n0*n11)?);
Rows?=?@(n0n1)sparse(?flat(repmat(1:n0?[n1?1]))?...
?????????????flat(reshape(1:n0*n1n0n1)‘?)?...
?????????????ones(n0*n11)?);
Sigma?=?@(n0n1)[Rows(n0n1);Cols(n0n1)];
%%?
maxit?=?1e4;?tol?=?1e-9;
otransp?=?@(Cp0p1)reshape(?perform_linprog(?...
????????Sigma(length(p0)length(p1))?...
????????[p0(:);p1(:)]?C(:)?0?maxit?tol)?[length(p0)?length(p1)]?);
%%?
n0?=?60;
n1?=?80;
%%?
gauss?=?@(qac)a*randn(2q)+repmat(c(:)?[1?q]);
X0?=?randn(2n0)*.3;
X1?=?[gauss(n1/2.5?[0?1.6])?gauss(n1/4.3?[-1?-1])?gauss(n1/4.3?[1?-1])];
%%?
normalize?=?@(a)a/sum(a(:));
p0?=?normalize(rand(n01));
p1?=?normalize(rand(n11));
%%?
myplot?=?@(xymscol)plot(xy?‘o‘?‘MarkerSize‘?ms?‘MarkerEdgeColor‘?‘k‘?‘MarkerFaceColor‘?col?‘LineWidth‘?2);
%%
clf;?hold?on;
for?i=1:length(p0)
????myplot(X0(1i)?X0(2i)?p0(i)*length(p0)*10?‘b‘);
end
for?i=1:length(p1)
????myplot(X1(1i)?X1(2i)?p1(i)*length(p1)*10?‘r‘);
end
axis([min(X1(1:))?max(X1(1:))?min(X1(2:))?max(X1(2:))]);?axis?off;
%%?
C?=?repmat(?sum(X0.^2)‘?[1?n1]?)?+?...
????repmat(?sum(X1.^2)?[n0?1]?)?-?2*X0‘*X1;
%%
gamma?=?otransp(Cp0p1);
%%
fprintf(‘Number?of?non-zero:?%d?(n0+n1-1=%d)\n‘?full(sum(gamma(:)~=0))?n0+n1-1);
%%
fprintf(‘Constraints?deviation?(should?be?0):?%.2e?%.2e.\n‘?norm(sum(gamma2)-p0(:))??norm(sum(gamma1)‘-p1(:)));
%%
[IJgammaij]?=?find(gamma);
%%
clf;
tlist?=?linspace(016);
for?i=1:length(tlist)
????t=tlist(i);
????Xt?=?(1-t)*X0(:I)?+?t*X1(:J);
????subplot(23i);
????hold?on;
????for?i=1:length(gammaij)
????????myplot(Xt(1i)?Xt(2i)?gammaij(i)*length(gammaij)*6?[t?0?1-t]);
????end
????title([‘t=‘?num2str(t2)]);
????axis([min(X1(1:))?max(X1(1:))?min(X1(2:))?max(X1(2:))]);?axis?off;
end
%%
n0?=?40;
n1?=?n0;
%%
X0?=?randn(2n0)*.3;
X1?=?[gauss(n1/2.5?[0?1.6])?gauss(n1/4.3?[-1?-1])?gauss(n1/4.3?[1?-1])];
%%
p0?=?ones(n01)/n0;
p1?=?ones(n11)/n1;
%%
C?=?repmat(?sum(X0.^2)‘?[1?n1]?)?+?...
????repmat(?sum(X1.^2)?[n0?1]?)?-?2*X0‘*X1;
%%
clf;?hold?on;
myplot(X0(1:)?X0(2:)?10?‘b‘);
myplot(X1(1:)?X1(2:)?10?‘r‘);
axis?equal;?axis?off;
%%
gamma?=?otransp(Cp0p1);
%%
clf;
imageplot(gamma);
%%
clf;?hold?on;
[IJ~]?=?find(gamma);
for?k=1:length(I)
????h?=?plot(?[X0(1I(k))?X1(1J(k))]?[X0(2I(k))?X1(2J(k))]?‘k‘?);
????set(h?‘LineWidth‘?2);
end
myplot(X0(1:)?X0(2:)?10?‘b‘);
myplot(X1(1:)?X1(2:)?10?‘r‘);
axis?equal;?axis?off;
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-02-12?16:31??最優傳輸工具箱\
?????文件????????2655??2017-02-12?19:23??最優傳輸工具箱\numericaltour.m
?????目錄???????????0??2017-02-12?16:26??最優傳輸工具箱\toolbox_general\
?????文件?????????729??2014-10-19?14:59??最優傳輸工具箱\toolbox_general\apply_multiple_ouput.m
?????文件?????????669??2014-10-19?14:59??最優傳輸工具箱\toolbox_general\assign.m
?????文件?????????149??2014-10-19?14:59??最優傳輸工具箱\toolbox_general\atan2.sci
?????文件?????????127??2014-10-19?14:59??最優傳輸工具箱\toolbox_general\axis.sci
?????文件????????9362??2014-10-19?14:59??最優傳輸工具箱\toolbox_general\binornd.m
?????文件??????????59??2014-10-19?14:59??最優傳輸工具箱\toolbox_general\camlight.sci
?????文件??????????73??2014-10-19?14:59??最優傳輸工具箱\toolbox_general\cat3.m
?????文件?????????721??2014-10-19?14:59??最優傳輸工具箱\toolbox_general\cat3.sci
?????文件?????????421??2014-10-19?14:59??最優傳輸工具箱\toolbox_general\cell_add.m
?????文件?????????161??2014-10-19?14:59??最優傳輸工具箱\toolbox_general\cell_get.m
?????文件?????????190??2014-10-19?14:59??最優傳輸工具箱\toolbox_general\cell_get.sci
?????文件?????????164??2014-10-19?14:59??最優傳輸工具箱\toolbox_general\cell_set.m
?????文件?????????192??2014-10-19?14:59??最優傳輸工具箱\toolbox_general\cell_set.sci
?????文件?????????185??2014-10-19?14:59??最優傳輸工具箱\toolbox_general\cell_sub.m
?????文件?????????267??2014-10-19?14:59??最優傳輸工具箱\toolbox_general\cell_sub.sci
?????文件?????????420??2014-10-19?14:59??最優傳輸工具箱\toolbox_general\certify_adjoint.m
?????文件?????????471??2014-10-19?14:59??最優傳輸工具箱\toolbox_general\circshift.sci
?????文件?????????342??2014-10-19?14:59??最優傳輸工具箱\toolbox_general\clamp.m
?????文件?????????347??2014-10-19?14:59??最優傳輸工具箱\toolbox_general\clamp.sci
?????文件??????????58??2014-10-19?14:59??最優傳輸工具箱\toolbox_general\colormap.sci
?????文件?????????205??2014-10-19?14:59??最優傳輸工具箱\toolbox_general\compute_max.m
?????文件?????????310??2014-10-19?14:59??最優傳輸工具箱\toolbox_general\compute_max.sci
?????文件?????????201??2014-10-19?14:59??最優傳輸工具箱\toolbox_general\compute_min.m
?????文件?????????306??2014-10-19?14:59??最優傳輸工具箱\toolbox_general\compute_min.sci
?????文件?????????899??2014-10-19?14:59??最優傳輸工具箱\toolbox_general\crop.m
?????文件?????????804??2014-10-19?14:59??最優傳輸工具箱\toolbox_general\crop.sci
?????文件?????????851??2014-10-19?14:59??最優傳輸工具箱\toolbox_general\det3.m
?????文件????????1389??2014-10-19?14:59??最優傳輸工具箱\toolbox_general\dump_struct.m
............此處省略251個文件信息
- 上一篇:數字信號處理原理及其MATLAB實現
- 下一篇:三維重建算法 MATLAB 點云數據
評論
共有 條評論