Error using plot Vectors must be the same length.
2 ビュー (過去 30 日間)
古いコメントを表示
clear, clc, close all
DataStruct_IMU = importdata("IMU_Data.tsv");
Time_IMU = DataStruct_IMU.data(:,1);
Omega_IMU = DataStruct_IMU.data(:,2);
h = mean(diff(Time_IMU));
n = length(Omega_IMU);
Aplha_IMU(1)=(-3*Omega_IMU(1) + 4*Omega_IMU(2) - Omega_IMU(3))/(2*h);
for i = 2:n-1
Alpha_IMU(i) = (Omega_IMU(i+1)-Omega_IMU(i-1))/(2*h);
end
Aplha_IMU(n) = (Omega_IMU(n-2)-4*Omega_IMU(n-2) + 3*Omega_IMU(n))/(2*h);
figure('units','normalized','outerposition',[0 0 1 1])
title({'CVEN 308 Module 3','Numerical integration and differentiation of pendulum motion'})
subplot(1,1,1)
hold on
plot(Time_IMU,Alpha_IMU,'b')
I got following error
Error using plot
Vectors must be the same length.
Error in Copy_2_of_Data_Analysis_Starter (line 23)
plot(Time_IMU,Alpha_IMU,'b')
5 件のコメント
採用された回答
Voss
2023 年 9 月 24 日
You assign to
Aplha_IMU(n)
but it should be
Alpha_IMU(n)
(Similarly for Aplha_IMU(1), but that's not the cause of the error.)
4 件のコメント
Voss
2023 年 9 月 25 日
An explanation: Those typos have the effect of creating two vectors: Aplha_IMU (the erroneous one), which is of length n, and Alpha_IMU (the one you wanted to plot with), which is of length n-1 (because its nth element never gets assigned).
See below:
n = 5;
Aplha_IMU(1) = 1;
for i = 2:n-1
Alpha_IMU(i) = i;
end
Aplha_IMU(n) = n;
% the one you wanted to create has n-1 elements.
% notice its first element is zero becuase it was never explicitly
% assigned.
Alpha_IMU
% the erroneously created vector has n elements.
% but it's all zeros except for the first and last element because only its
% first and last elements were explicitly assigned.
Aplha_IMU
So then when you try to plot Alpha_IMU against Time_IMU, you get the error you got because Alpha_IMU has n-1 elements while Time_IMU has n elements.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Annotations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!