2016-04-30 5 views
-1

У меня есть матрица из 100 подматриц. Каждый из этой подпрограммы матрицы имеют 6 элементов (1 * 6),Выберите элемент подматрицы

мне нужно вычислить среднее значение первого элемента каждой подгруппы матрицы затем

второй и т.д.

Пример:

B=[4,**3**,2,1,1,2] 
C=[4,**3**,5,1,1,2] 
D=[6,**3**,2,1,1,2] 

A={B,C,D} 

... и т.д.

Так что я хочу, среднее значение surlined числа, то следующий т.д.,

Как я могу это сделать ???

Благодаря авансовым,

+0

Можете ли вы привести небольшой пример вашей матрицы? Я не могу сказать, является ли это '100x6',' 1x600' или что. – beaker

+0

Матрица A (1,100) содержит 100 подматриц B, C, D ... Тогда B является матрицей 1 * 6 –

+0

Это не имеет для меня никакого смысла. Является ли 'A' структурой? Ячейка? Можете ли вы дать небольшой пример того, как выглядит ваша матрица? – beaker

ответ

0

я думаю, что вам нужно здесь команда cell2mat. здесь небольшой скрипт, как вычислять, означает автоматически, не зная размер данных. сообщите мне, если бы это было то, что вы искали.

% Problem 
vec1 = [4,3,2,1,1,2]; 
vec2 = [4,3,5,1,1,2]; 
vec3 = [6,3,2,1,1,2]; 
A = {vec1,vec2,vec3}; 

% get dimensions 
cols = numel(cell2mat(A(1))); 
rows = numel(A); 

% convert list of vectors to matrix 
M = cell2mat(A); 
M = reshape(M,[cols,rows]); 
M = M'; 
means = mean(M) 
+0

Да, это то, что нужно! Ths для вашей помощи –

+0

Это намного проще, если вы просто перенесите 'A' перед преобразованием его в матрицу:' M = cell2mat (A. '); 'Или, даже быстрее,' mean = mean (cell2mat (A.')) '. – beaker

+0

, пожалуйста, отметьте вопрос как решение и принять ответ. Спасибо! – thomas