Как построить данные из файла .mat в Matlab - PullRequest
0 голосов
/ 04 марта 2019

Мой 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 голосов
/ 07 марта 2019

Если я правильно понимаю вашу проблему, вы можете отобразить ее в цикле for с 1 по 256.

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 цифр.

Можете ли вы отправить некоторые данные?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...