簡體   English   中英

如何在Matlab中快速繪制3D向量?

[英]How can I plot a 3d vector fast in matlab?

我正在做一個項目,其中包括使用加速度計和陀螺儀來確定物體的方向。 我可以通過串行通信將3d方向矢量從arduino傳遞到matlab。

我想在Matlab中繪制矢量以進行實時分析。 我在循環中使用quiver3ddrawnow函數繪制矢量,但是quiver3d函數非常慢,因此我可以在20秒后看到對象的方向。

有什么方法可以更快地繪制3d向量嗎?

謝謝。

quiver圖對於在3-D中僅繪制一個矢量來說可能太大了。 您可以通過使用簡單的plot3例如下面繪制的圖)來獲得類似的圖。

在此圖中,向量的原點是藍點,方向由紅線給出。

在此處輸入圖片說明

編碼

%v is the direction of the vector (3 cartesian coordinates)
v = sort(randn(100,3));
v = bsxfun(@rdivide,v,sqrt(sum(v.^2,2)));

%xyz the origin of the vector
ind = linspace(-pi,pi,100);
x = cos(ind);
y = sin(ind);
z = ind;

%the plotting function
figure
for ii = 1:numel(ind)
    plot3(x(ii),y(ii),z(ii),'bo'); %origin in blue
    set(gca,'XLim', [-3 3], 'YLim', [-3 3], 'ZLim', [-3 3]);
    hold on;
    hl = plot3( linspace(x(ii), x(ii)+v(ii,1),10),  ...
                linspace(y(ii), y(ii)+v(ii,2),10),  ...
                linspace(z(ii), z(ii)+v(ii,3),10),  ...
                'r'); %direction in red
    view(80,10);
    pause(0.1);
    %clf
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM