У меня есть 2-мерный массив L
, и я пытаюсь создать вектор линейных индексов ind
для каждой строки этого массива.Как векторизовать sub2ind?
L=
1 5 25 4 0 0
2 3 3 45 5 6
45 5 6 0 0 0
Я использую lenr
для хранения количества ненулевых элементов в каждой строке (начиная с колонки 1).
lenr=
4
6
3
Тогда я 1x45 массив RULES
. Индексы, хранящиеся в L
, относятся к элементам в RULES
. Поскольку я хочу векторизовать код, я решил создать линейные индексы, а затем запустить RULES(ind)
.
Это отлично работает:
ind=sub2ind(size(L),1,lenr(1));
в то время как это не работает:
ind=sub2ind(size(L),1:3,1:lenr(1:3));
Есть идеи?
UPDATE:
Это то, что я изначально пытался векторизации код, но он не работает, и именно поэтому я проверил линейные показатели:
rul=repmat(RULES,3);
result = rul((L(1:J,1:lenr(1:J))));
Просьба * * полный пример и объясните, что вы пытаетесь сделать. – excaza
@excaze: Посмотрите мои обновления. –
Почему вы используете '1: lenr (1: 3)' вместо 'lenr (1: 3)'? – excaza