2015-06-01 2 views
0

Можно ли получить все символы в диапазоне, заданном матрицейКак получить все символы в диапазоне, заданном матрицей в MATLAB

Для примера:

Моя матрица является то, как это:

A = ['a' 'b' 'c';  %// Start index 
    'd' 'e' 'f'];  %// End Index 

Ожидаемый выходной вектор (клеточно-массив строки)

Out = {'abcd' 'bcde' 'cdef'} 

Любая помощь будет оценена по достоинству.

+0

вы хотите их в виде строки, как '{ 'а: Ь', 'Ь: е', 'C: F'}' ? –

ответ

1

Надеюсь, это то, что вы ищете.

out = arrayfun(@colon,A(1,:),A(2,:),'uni',0); 

Как это работает?

элементов в каждой строке, передаются по одному (в то же время), используя arrayfun и все символы между ними, включая граничные символы возвращаются.

Входной сигнал:

A = ['a' 'b' 'c'; 
    'd' 'e' 'f']; 

"Выход представляет собой вектор клетки-массив"

Выход:

>> out 

out = 

'abcd' 'bcde' 'cdef' 

Если вы хотите, чтобы они в этом формате {'a:b','b:e','c:f'} вы могли бы использовать это:

out = arrayfun(@(x,y) strcat(x,':',y),A(1,:),A(2,:),'uni',0); 

>> out 

out = 

'a:d' 'b:e' 'c:f' 
+0

Из 2xm-матрицы M я хочу получить m интервалов [M (1,1): M (2,1) M (1,2): M (2,2) ... M (1, m): M (2, m)] –

+1

Возможно, пример с числами (вместо символов) будет более ясным? –

+0

@YongWookShin Разве это не то, что я получил? –

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