how to simplify a series of command
조회 수: 5 (최근 30일)
이전 댓글 표시
hi, I did not study MATLAB systematically so this might be a basic question. is there a common method to simplifying series of commands like the first 34 lines of this file? Thank you.
댓글 수: 0
채택된 답변
Dyuman Joshi
2023년 6월 15일
편집: Dyuman Joshi
2023년 6월 15일
This is the downside of dynamically naming variables.
Define an array instead of defining variables individually and use a loop -
%Defining an array where one can easily access values via simple indexing
p=[0,0,2; 2,0,2; 2,0,-1; -2,0,-1; -2,0,0; -1,0,1];
Q=[-1,0,0; 0,0,1; 2,0,0];
s1 = size(Q,1);
s2 = size(p,1);
%pre-allocation
out = zeros(s2,s1);
for m=1:s1
out(:,m)=1./vecnorm(Q(m,:)-p,2,2);
end
%Here (i,j) element of out corresponds to the value PQipj
out
Edit - If you have the Stats and ML Toolbox, you can achieve the result in one line of code -
OUT = 1./pdist2(p,Q)
댓글 수: 1
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Function Creation에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!