2016-04-28 5 views
0

У меня есть 100 .xlsx. Каждый файл имеет 100 * 100 (столбец строки *). Я использовал код для чтения, чтобы прочитать их.Нанесение данных из массива ячеек

clear; 
clc; 
M= 100; 
data = cell(1, M); 
    for k = 1:N 
    N= sprintf('Data%d.xlsx', k); 
    data{k} = importdata(N); 
end 

У меня есть пары вопросов

  • Как построить каждый столбец, начиная с колонки номер 2 против столбца number1 для всех матриц? У меня должно быть 99 сюжетов для каждой матрицы.
  • Как я могу извлечь данные из структуры, чтобы выполнить некоторую операцию над ней? Я должен иметь 100 матриц размером (100 * 100).

Я попытался под кодом извлечь данные, но он не работает. он сохраняет только одну матрицу

for i=1:100 
    z=data{1,i}.data; 
end 

Я попробовал этот код, чтобы сделать 3D-матрицу

data=zeros(100,100,100) 
M= 100; 
for k = 1:M 
    N = sprintf('file%d.xlsx', k); 
    data(:,:,k)=importdata(N); 
end 

Благодарности

+0

Вы индексируете вещи прямо во втором для cicle? – 16per9

+0

Я бы предложил не использовать ячейки в первую очередь, если ваши матрицы все 100 * 100. Вы можете просто определить матрицу 'data = zeros (100,100,100)' и в вашем цикле установить 'data (:,:, k) = importdata (N)'. Тогда это просто стандартное построение над срезами – BillBokeey

+0

@BillBokeey, я использовал выше код для изменения данных в 3D-матрицу, но у меня все еще есть проблема с извлечением данных из структуры – user6052232

ответ

0

Так что ваш вопрос немного сбивает с толку, но я думаю, что я знаю, что ты» повторно после. Есть ли причина, по которой вы не использовали XLSREAD?

for i = 1:100 
    [data{i},~,~] = xlsread(sprintf('Data%d.xlsx',i)); 
end 

for i = 1:length(data) 
    for j = 2:size(data{i},2) 
     figure; 
     plot(data{i}(:,1),data{i}(:,j) 
    end 
end 
Смежные вопросы