gpt4 book ai didi

matlab - 如何在Matlab中画出这种树状的点阵结构?

转载 作者:太空宇宙 更新时间:2023-11-03 20:17:04 25 4
gpt4 key购买 nike

我要绘制的结构应该与显示的结构完全一样。谢谢! enter image description here

最佳答案

这是我快速创建的一个小函数,它将一个正方形上三角矩阵作为输入,并绘制如上所示的晶格结构:

function hFigure = plot_lattice(A)

%# Compute all the coordinates needed for the lines and points:

N = size(A,1);
[xPoints,yPoints] = meshgrid(0:N-1);
yPoints = bsxfun(@plus,-yPoints,0:0.5:(N-0.5)/2);
xLines = [xPoints([1:N+1:N^2-N-1 1:N:N^2-2*N+1]); ...
xPoints([1:N-1 N:-1:2],N).']; %'
yLines = [yPoints([1:N+1:N^2-N-1 1:N:N^2-2*N+1]); ...
yPoints([1:N-1 N:-1:2],N).']; %'
index = find(triu(reshape(1:N^2,N,N)));
xPoints = xPoints(index);
yPoints = yPoints(index);
values = strtrim(cellstr(num2str(A(index))));

%# Create the figure:

hFigure = figure('Color','w');
hAxes = axes('Parent',hFigure,'XLim',[-0.5 N-0.5],...
'YLim',[min(yPoints)-0.5 max(yPoints)+0.5],...
'YColor','w','XTick',0:N-1,'LineWidth',2);
hold on;
plot(hAxes,xLines,yLines,'k','LineWidth',2);
plot(hAxes,xPoints,yPoints,'o','MarkerFaceColor',[0.96 0.96 0.86],...
'MarkerSize',30,'MarkerEdgeColor','k','LineWidth',2);
text(xPoints,yPoints,values,'Parent',hAxes,...
'HorizontalAlignment','center');
hold off;

end

这是一个样本矩阵测试:

>> A = triu(reshape(1:25,5,5))

A =

1 6 11 16 21
0 7 12 17 22
0 0 13 18 23
0 0 0 19 24
0 0 0 0 25

>> plot_lattice(A);

enter image description here

关于matlab - 如何在Matlab中画出这种树状的点阵结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5208501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com