plot3でのエラー解決方法

조회 수: 22 (최근 30일)
snakehips0909
snakehips0909 2020년 9월 17일
댓글: snakehips0909 2020년 9월 18일
二次元plotまでは,できるのですが,plot3を用いて3次元グラフを書こうとすると
ベクトルは同じ長さでなければなりません.というエラーが出ます.
どのように書けば,これを回避することが可能でしょうか?
function [ output_args ] = transient_StateSpace( )
cKeyName = 'sol109_InitalVelo_beam10_alminum';
RespGrid = 11;
RespDir = 2;
src = load([cKeyName, '.mat']);
bdf = src.bdf;
A = src.A;
ActiveADispIdx = src.ActiveADispIdx(:)';
ActiveAVeloIdx = src.ActiveAVeloIdx(:)';
ActiveAIdx = [ActiveADispIdx(:); ActiveAVeloIdx(:)]';
NN = size(bdf.BulkData.grids, 1);
dof = 6*NN;
tstep = get_tstepsub(bdf.CaseCtrl.tstep, bdf.BulkData);
iNumStep = tstep(2);
dt = tstep(3);
if abs(src.dt - dt) > eps
error('Unknown Error');
end
% dt = (1/EigenFreq(end))/10;
t = 0:dt:dt*(iNumStep - 1);
% % Initial condition
[U0, V0] = mk_InitialCondition(bdf.CaseCtrl.ic, bdf.BulkData);
X = zeros(2*dof, iNumStep);
X( 1: dof, 1) = V0;
X((dof + 1):2*dof, 1) = U0;
% solve
A0 = A(ActiveAIdx, ActiveAIdx);
for ii1 = 1:(iNumStep - 1)
X(ActiveAIdx, ii1 + 1) = A0*X(ActiveAIdx, ii1);
end
% convolution
F = 5*cos(7*t);
conv_X = zeros(2*dof, iNumStep);
tic
for ii1 = 1:iNumStep
conv_S = X(ActiveAIdx, :)*F(1,ii1);
conv_X(ActiveAIdx, ii1:end) = conv_X(ActiveAIdx, ii1:end) + conv_S(:, 1:(iNumStep - ii1 + 1));
end
toc
%2次元グラフ
ActiveADispIdx = ActiveADispIdx(1:2:end);
figure(203);
plot(t,conv_X(ActiveADispIdx,:));
%問題箇所
figure();
for ii1 = 1:ActiveADispIdx
h1 = plot3(ones(19,1)*ii1*1,t(1:0.01:2),conv_X(ii1,:));
end
disp('finished')
このような2次元グラフを以下の様に表すにはどうすれば良いでしょうか.

답변 (1개)

Akira Agata
Akira Agata 2020년 9월 17일
waterfall 関数を使って、ウォーターフォールプロットとして可視化するというのは如何でしょうか?
以下は簡単な例です。
% Sample data
t = 0:0.1:20;
data = zeros(7,numel(t));
for kk = 1:7
data(kk,:) = besselj(kk,t);
end
% Visualize as a waterfall plot
figure
waterfall(t,1:7,data)
xlabel('t')
ylabel('\nu')
title('Bessel function J_{\nu}(t)')
ax = gca;
ax.View = [15 60];
  댓글 수: 1
snakehips0909
snakehips0909 2020년 9월 18일
回答ありがとうございます.waterfallも事前に試していたのですが,同様なエラーが出ていました.引数のデータ数が足りていなかった点と,xとzのデータに関して,ベクトルの転置をすることで解決できました.ありがとうございました.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 ライン プロット에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!