Добавить входные данные для более чем одной строки в массиве ячеек в Matlab - PullRequest
0 голосов
/ 17 мая 2010

Я хотел бы знать, как я могу получить определенные входные данные и поместить их в несколько строк в массиве ячеек ... Я в основном хочу массив, который обновляет один вход на строку в любом цикле. Цикл зациклен 30 раз, поэтому я хочу иметь 30 строк и 2 столбца (столбцы x и y)

У меня есть этот код:

For N=1:30
    .
    .
    .
    Binary = bwlabel(blacknwhite);
    s = regionprops(Binary,'centroid');
    centroids = cat(1, s.Centroid);
    hold(imgca,'on')
    plot(imgca,centroids(1,1), centroids(1,2),'r*')
    .
    .
    .
    end

Я не думаю, что это делает то, что я хочу ... только первая строка обновляется в моем цикле .. Итак, как я могу создать этот массив ячеек?

Если вам нужна дополнительная информация, пожалуйста, сообщите мне, и я обновлю ее сразу.

Спасибо!

Ответы [ 2 ]

1 голос
/ 17 мая 2010

Я предполагаю, что вы хотите хранить центроиды. В этом случае вы должны использовать centroids(N,:)=cat.... Кроме того, как говорит @High Performance Mark, вы должны предварительно выделить массив.

centroids = zeros(30,2); %# this assumes 1 centroid per image. 
For N=1:30
    .
    .
    .
    Binary = bwlabel(blacknwhite);
    s = regionprops(Binary,'centroid');
    centroids(N,:) = cat(1, s.Centroid);
    hold(imgca,'on')
    plot(imgca,centroids(N,1), centroids(N,2),'r*')
    .
    .
    .
end
1 голос
/ 17 мая 2010

Уже поздно, поэтому это не полный ответ:

Что ты пытаешься сделать? Вы пытаетесь построить массив Nx2 по одной строке за раз? Если да, то вам следует:

  1. Предварительно выделите место для всего массива с помощью следующего предложения: newArray = zeros(N,2).
  2. Внутри вашего цикла напишите оператор, например newArray(N,:) = newValues, где newValues ​​- массив 1x2 Для меня очень странно, что ваш фрагмент кода не использует индекс массива N.

Вы пытаетесь создать массив ячеек или массив?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...