2017-10-07 11 views
1

나는 상징적 인 행렬을 가지고 있으며 다른 값을 현명한 행으로 대체하려고합니다. 루프를 반복 할 때마다 값을 행으로 대체하는 루프를 for으로 사용했습니다. 그러나 이러한 반복을 결합하여 매트릭스를 얻으려면 어떻게해야합니까?MATLAB에서 LOOP를 사용하여 하나의 출력에서 ​​모든 반복을 결합 할 수 있습니까?

A=[x x^2;x^3 x^4]은 두 행의 상징적 인 행렬이고, 나는 행 1에서 2를 그리고 행 2에서 2를 for 루프를 사용하여 제출하고 싶습니다. 대체 행렬 2 행을 원합니다. for 회 돌이가 없다면 매우 단순하지만 더 높은 차원의 경우에는 for 루프가 유용합니다.

답변

0

질문을 올바르게 이해하려면 기호 행렬에서 행 별 대체를위한 반복적 인 솔루션이 필요하며 모든 결과를 수치 행렬에 수집해야합니다. 이것은 다음과 같이 이루어질 수 있습니다 :

% Define symbolic variables 
syms x 
A = [x x^2; x^3 x^4]; 

% substitution values of x for each row 
xvals = [1 2]; 

% iterative substitution in symbolic expression 
[Ar,Ac,Ad] = size(A); % Use Ac, Ad for higher dim. matrices if needed 
res = zeros(size(A)); % Collect results 

for i=1:Ar 
    x = xvals(i); 
    res(i,:) = subs(A(i,:)); 
end 

귀하의 요구 사항에 따라 더 높은 어둑한 것을 정의 할 수 있습니다. 기호 행렬 및 수치 행렬을 사용하고 치환을 위해 루프에 res(i,:,k) = subs(A(i,:,k)) where k=1:Ad을 사용하십시오.

+0

맞습니다. 선생님, 다른 루프 (중첩 루프) 또는 동일한 루프의 다른 명령문으로 삽입해야 할 경우 더 높은 차원에 "k"를 추가하겠다고 제안하셨습니까? –