MATLAB и gplot
Я пытаюсь найти способ построить ферму в MATLAB, я могу сделать это, используя матрицу смежности и функцию gplot, но это очень длинный подход, особенно если есть много узлов, связанных друг с другом. Есть ли более быстрый способ сделать это?
2 ответа
Я думаю, что gplot - хорошая функция для построения фермы. Однако может быть возможно упростить создание матрицы смежности.
Например, если ваш coordinates
хранятся в массиве n-на-2, и для каждой пары узлов есть стойка, которая разделена менее чем на dMax
Вы можете создать матрицу смежности следующим образом:
%# create a distance matrix
distMatSquared = coordinates * coordinates'; %' #SO formatting
%# create an adjacency matrix that has a 1 wherever
%# distMatSquared is smaller than dMax^2, and that has 0 everywhere else
adjacencyMatrix = distMatSquared < dMax^2;
%# plot the truss with circles at the nodes
figure,gplot(adjacencyMatrix,coordinates,'-o');
Если это ферма в смысле механики материалов:
http://www.mathworks.com/matlabcentral/fileexchange/2170-mastering-mechanics-1-using-matlab-5
и вспомогательная книга
http://www.amazon.com/Mastering-Mechanics-Using-MATLAB-Materials/dp/0138640343
Я написал некоторую визуализацию фермы и просто общую материальную мощь.