Я читаю некоторые данные с их атрибутом (например, A, в котором первая строка является идентификатором, а вторая строка - их значением атрибута). Я хотел бы разместить такие данные в ячейке, где первый столбец является уникальным идентификатором и второй строкой их атрибута. всякий раз, когда есть повторяющиеся значения для атрибута, я буду размещать вакансию, доступную на передней части ее строки. например, я хотел бы построить CРазмер внутренних элементов ячеек
A =
1 2 3 2
2 4 5 9
C{1}=
1 2 0
2 4 9
3 5 0
, когда я собираюсь проверить размер внутренних домов в ячейке, например.
size(C{1},2)
ans = 3
size(C{1},1)
ans = 3
size(C{1}(1,:),2)
ans = 3
Все возвращают 3, так как он занимает пустые дома с 0. Так как я должен понимать, куда девать свои новые данные (например, (1,5))? Должен ли я пересекать или находить место 0 и вставлять туда? Спасибо за любую помощь.
Использование 'find (C {1} (j, :) == 0,1)' действительно должно работать для j-й строки, но имейте в виду, что если вся строка заполнена, find вернет пустой массив индексов , [Но почему бы не использовать контейнер карты Matlabs, заполненный списками] (http://nl.mathworks.com/help/matlab/map-containers.html)? – Lanting
Итак, сначала я должен проверить, содержит ли он 0 или не использует ismember или найти, чтобы найти первый индекс ненулевого элемента, и если он вернулся пустым, я использую конец + 1 для вставки новых элементов. Я должен использовать это много раз в своем коде. Каково главное преимущество контейнера карты со списком? ячейка не делает то же самое? – hamideh
@hamideh Вы не должны делать это каждый раз. Вы могли бы сделать это за один раз. Я отправил ответ. проверьте это :) –