2015-04-17 2 views
0

Нам задан массив ячеек Ref_M размера m x n и вектор IND длины m.Сортировка строк массива ячеек с использованием заданных индексов

IND(i) содержит количество непустых ячеек в i-м ряду Ref_M. Цель состоит в том, чтобы организовать строки в массиве ячеек Ref_M на основе значения в векторе IND от наибольшего значения до наименьшего.

Дано:

Ref_M = [2x2 double] [2x2 double] [] 
     [2x2 double]  []    [] 
     [2x2 double] [2x2 double] [] 
     [2x2 double] [2x2 double] [2x2 double] 

IND = [ 2 1 2 3] 

Результат должен быть:

New_Ref_M = [2x2 double] [2x2 double] [2x2 double] 
      [2x2 double] [2x2 double] [] 
      [2x2 double] [2x2 double] [] 
      [2x2 double] []    [] 

Кроме того, есть способ организовать массив ячеек Ref_M линии без использования данного вектора индексов, IND?

+0

Я надеюсь, что моя правка, что вы пытаетесь сказать? Первоначальный вопрос действительно трудно понять. –

ответ

1

Попробуйте sort().

[B, transform] = sort(IND, 'descend'); 
New_Ref_M = Ref_M(transform, :); 

Вы можете определить IND по своему усмотрению с помощью:

IND = sum(~cellfun('isempty', Ref_M), 2); 
+0

Извините, но есть ошибка во второй строке –

+0

, не работающая с массивом ячеек !! –

+0

работает просто отлично! благодаря!! –

Смежные вопросы