Solve equation with 2 variables being vectors
1 次查看(过去 30 天)
显示 更早的评论
Example C=@(A,B) A+B*A A=[1 2 3] B=[4 2 6]
I want C to be a matrix of all possible solutions
Right now I have C as a function and A and B as user inputs
Is there any easier way than writing a loop?
Clarification: C is a very complicated equation with a 2 variables that can have multiple inputs. I want to know all possible solutions. Is there a way to get all possible solutions without nesting loops. I'm making a contour map of 2 inputs and 2 outputs.
3 个评论
Justin
2014-5-12
You should be able to put an array into a symbolic variable and solve for each value of that array. That means you could define Ff and Xi using the meshgrid method in my answer below. You could:
[Xi, Ff] = meshgrid(Xi, Ff)
and then solve with the values of Xi and Ff that are returned which should give you every possible combination.
回答(2 个)
Justin
2014-5-8
编辑:Justin
2014-5-8
Edited for clarification:
This may do the trick. It has a loop but only one for implementing the function. After it is run the a, b, and c should hopefully be everything you need.
A=[1 2 3];
B=[4 2 6];
[a, b] = meshgrid(A, B);
for i = 1:length(p)
c(i) = C(a(i), b(i));
end
Let me know how that works.
_______________________________________________
OLD STUFF:
I'm not sure if I understand the question right but bsxfun may be useful. bsxfun automatically extends an array along a singleton dimension to match the other array's size. You could use it to get the results you want (I think).
A=[1 2 3];
B=[4 2 6];
bsxfun(@plus, A, B')
ans =
5 6 7
3 4 5
7 8 9
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Linear Algebra 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!