如何在Matlab中从.mat文件中绘制数据

时间:2019-03-04 14:34:51

标签: matlab

我的数据Matfile是256x150000x11,我希望150,000作为x轴(以毫秒为单位),并且图形上有11条线。 y轴应该是已经来自文件内部的电压值。一幅图应代表1/256。因此,从技术上讲,我应该有256个图形,这些图形具有相同的标记轴和图形线数。您能帮我弄清楚如何在Matlab中进行绘制吗?这是我的代码:

function importfile(fileToRead1)
%IMPORTFILE(FILETOREAD1)
%  Imports data from the specified file
%  FILETOREAD1:  file to read

%  Auto-generated by MATLAB on 04-Mar-2019 07:15:26

% Import the file
%newData1 = load('-mat', fileToRead1);
newData1 = load('Sub21.mat')

% Create new variables in the base workspace from those fields.
vars = fieldnames(newData1);
for i = 1:length(vars)
    assignin('base', vars{i}, newData1.(vars{i}));
end
[n,p] = size(newData1)
t = 1:n;
plot(t,newData1)

1 个答案:

答案 0 :(得分:0)

如果我理解您的问题正确,则可以将其绘制在从1到256的for循环中。

newData1 = load('Sub21.mat')

for n=1:256
plot(newdata(n,:,1)) %Plotting n of 256, all 150000 and 1st of the 11 lines
hold on;
plot(newdata(n,:,2))
hold on;
plot(newdata(n,:,3))
hold on;
.
.
.
plot(newdata(n,:,11))
hold on;
xlabel('milisec')
ylabel('voltage')
legend('name1','name2', .... , 'name11')
end
% or maybe two for loops
for n=1:256
for m=1:11
    plot(newdata(n,:,m)) %Plotting n of 256, all 150000 and m of the 11 lines
    hold on;
end 
end

您可能想使用子图,因此最终不会得到256位数字。

您可以发送一些数据吗?