繁体   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