나는 MATLAB에서 플롯하고자하는 세 가지 매개 변수의 함수를 얻었고 다차원 배열 50x50x50을 만들기위한 매개 변수의 값 (각 매개 변수의 값은 50 개)을 변경했습니다. 처음에는 서핑으로, 그 다음에는 contorn3으로 음모를 꾸미기를 원합니다.하지만 어떻게해야할지 모르겠습니다. 이 기능의 추세를보고 싶습니다.matlab에 multimim 배열 플롯하는 방법
0
A
답변
1
제가 이해한다면 value = fun(parmA, parmB, parmC)
과 같은 기능이 있으며 value
이 w.r.t를 어떻게 변경하는지 시각화하고 싶습니다. 매개 변수 불행히도 단일 그래픽에서 모든 데이터를 한 번에 시각화 할 수있는 방법은 없습니다. 상수를 유지하려면 치수 중 하나를 선택해야합니다.
표면 플롯 surf()
또는 레벨 윤곽 contour()
을 사용하여 3 차원 데이터를 시각화 할 수 있습니다. 이것들은 value = fun(parmA, parmB)
또는 z = fun(x,y)
과 같은 것을 가지고있을 때 작동합니다. 따라서 가장 좋은 대안은 치수 중 하나를 단계별로 실행하고 각 값에 대한 새로운 곡면 또는 등고선을 생성하는 것입니다.
짧은 지연을 사용하면 실제로 비디오를 생성 할 수 있습니다. 다음은 간단한 예입니다. 처음부터 끝까지 축을 일정하게 유지하려면 약간의 작업이 필요합니다.
clear all; close all; clc
% create your parameters
x = linspace(-50,50,51);
y = linspace(-100,100,52);
z = linspace(0,50,50);
% A function of three variables
fun = @(x,y,z) sqrt(x^2 + y^2 + z^2);
% Preallocate
vaue = zeros(50,50,50);
% Populate the data matrix
for i = 1:numel(x)
for j = 1:numel(y)
for k = 1:numel(z)
value(i,j,k) = fun(x(i),y(j),z(k));
end
end
end
% Generate a new surface or contour plot for each value of "z"
for k = 1:numel(z)
figure(1)
%contour(x,y,value(:,:,k)');
surf(x,y,value(:,:,k)');
title(sprintf('z = %f',z(k)));
pause(0.1);
end
가능한 dup : http://stackoverflow.com/questions/9806190/plot-multidimensional-array-in-matlab – Murkantilism