Can't seem to understand what my mistake is (Loading .mat files)
조회 수: 2 (최근 30일)
이전 댓글 표시
So I had saved .mat files from my 2 Matlab codes and now loading into a new Matlab File for a comparison plot!
But I am getting an error that it is an "unrecognized function or variable", when I can clearly see the variable in my workspace
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/369475/image.jpeg)
All the files ae attached!!
clear all;
close all;
clc;
% Comparison Plot
filenames = {'q_Theta_Y.mat','q_dot_Theta_Y.mat','q_Y_Theta.mat', 'q_dot_Y_Theta.mat',...
'q_ref.mat', 'q_ref_dot.mat', 'Time.mat',...
'E_pos_Theta_Y.mat','E_vel_Theta_Y.mat','E_pos_Y_Theta.mat', 'E_vel_Y_Theta.mat'};
for kk = 1:numel(filenames)
load(filenames{kk})
end
%--------------------------------------------------------------------------
%%%%%%%%%%%%%%%%%%%%%%%% Plot results %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%--------------------------------------------------------------------------
% Plot Comparison b/w q_ref1 and q1 (Position of Link 1)
set(figure,'Color','white')
subplot(2,2,1)
plot(Time,q_Theta_y(:,1),'b-',Time,q_ref(:,1),'k-.','LineWidth',2);
grid on
grid minor
hold on
plot(Time, q_Y_Theta(:,1), 'r-', Time,'LineWidth',2);
axis tight
title('Link 1: actual and reference trajectory', 'fontsize', 20);
xlabel('$$t \, {\rm [s]}$$', 'interpreter','latex','fontsize', 20);
ylabel('$$Position (m)$$', 'interpreter','latex', 'fontsize', 20);
% xlim([0 t_net(length(t_net))]);
% ylim([-1.2 1.2]);
legend('$$q_1$$($$\Theta \cdot Y$$)', '$$q_{1,{\rm ref}}$$', '$$q_1$$($$Y \cdot \Theta$$)',...
'interpreter','latex','fontsize',25);
hold off
댓글 수: 1
Stephen23
2020년 10월 1일
편집: Stephen23
2020년 10월 1일
Why are you saving one variable per file? Your code would probably be simpler if you saved all of those variables in one file (tip: use the -struct option when saving, and always load into an output variable. Note that load also lets you select which variables to import from the file).
채택된 답변
Stephen23
2020년 10월 1일
편집: Stephen23
2020년 10월 1일
The bug is very simple: your code refers to
q_Theta_y
but the variable in the mat file is named
q_Theta_Y
You need to use the correct case (variable names are case-sensitive).
Much better would be to replace all of those separate files with one mat file and load into an output variable (which is a scalar structure), e.g.:
F = absolute or relative path of the mat file.
S = load(F);
Note that you can select which variables you want to import, e.g.:
S = load(F,'Time','q_Theta_Y');
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!