Я бы хотел построить связанные точки в MATLAB.
Мои подключенные точки происходят из соединяющихся объектов "stats" , где каждый "stat" происходит из BW regionprops struct.
Код, который я написал, работает, но он страдает от многих "уродливых" , которые я не мог исправить даже после попытки различными способами.
function plot_line( line )
a = cell2mat(line);
b = {a.Centroid};
matx = {};
maty = {};
for i = 1:size(b,2)
matx{end+1} = b{i}(1);
maty{end+1} = b{i}(2);
end
plot ( cell2mat(matx), cell2mat(maty) );
end
Можете ли вы помочь мне сделать этот код лучше? Это не критично, так как мой код работает нормально, а строки короткие (<100 баллов), производительность не является проблемой. </p>
Просто было бы очень приятно узнать, как эта крошечная функция должна быть написана надлежащим образом, без циклов for и 3 вызовов cell2mat.
В моем примере:
- строка - это
<1xn cell>
,
line{1}
имеет свойство 'Centroid'
и
line{i}.Centroid(1)
- координаты х и
line{i}.Centroid(2)
- координаты y.
На самом деле все, что мне нужно, это заговор line{i}.Centroid(1)
, line{i}.Centroid(2)
для i = 1:size(line,2)
, но я не знаю как.