簡體   English   中英

如何在MATLAB中繪制輸入和輸出數據

[英]How to plot input and output data in MATLAB

我有一個二維輸入數據; 一組具有2個成分的向量,比方說200。對於每個成分,我都有一個標量值。

所以基本上是這樣的:

{ [input1(i) input2(i)] , output(i) } where i goes from 1 to 200

我想使用此數據繪制3維圖,但我不知道它的精確度。 我嘗試過surf 我已經用輸入值完成了meshgrid ,但是我不知道如何從輸出數據中獲取矩陣來進行surf

如何使用此數據獲得三維圖?

假設您的輸入數據是“隨機”隔開的:

>> inputs = randn(400, 2);
>> outputs = inputs(:, 1) .* inputs(:, 2);   % some function for the output

您可以簡單地繪制這些數據的散點圖

>> scatter3(inputs(:, 1), inputs(:, 2), outputs)

替代文字

但是更好的方法是使用TriScatteredInterp進行插值,以便可以將基礎函數繪制為曲面:

% create suitably spaced mesh...
gridsteps_x = min(inputs(:, 1)):0.5:max(inputs(:, 1));
gridsteps_y = min(inputs(:, 2)):0.5:max(inputs(:, 2));
[X, Y] = meshgrid(gridsteps_x, gridsteps_y);

% Compute function to perform interpolation:
F = TriScatteredInterp(inputs(:, 1), inputs(:, 2), outputs);

% Calculate Z values using function F:
Z = F(X, Y);

% Now plot this, with original data:
mesh(X, Y, Z); 
hold on
scatter3(inputs(:, 1), inputs(:, 2), outputs);
hold off

替代文字

暫無
暫無

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

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