Matrix Output Matlab Calculation

Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
1 reply · 14K views
Air
Messages
202
Reaction score
0
I am making a script-m file to produce results of a formula in a Matrix output.

Code:
function s = calc(a, b)

i = [-a: 1: a];
j = [-b: 1: b];

k = i.^2 + j.*i;

A = [i' j' k']

disp('i  j  k'), disp(A)

But, it does not consider all combination. How can I make it stop at a 'i' value so all 'j' values can be matched to that and solved for 'k' before proceeding. In my code, it just does one round of 'i' and 'j' values.
 
Physics news on Phys.org
I'm not sure I understand the question...

If you want to create a matrix k that contains every combination of the i and j values, then you might try something like:

Code:
function s = calc(a, b)

i = [-a: 1: a];
j = [-b: 1: b];

%  Use an outer for loop to iterate through all of the i values (uses index u)
for u = 1:1:max(size(i))
    %  Use an inner for loop to iterate through all of the j values (uses index v)
    for v = 1:1:max(size(j))
        %  Here we construct k to have two dimensions, the first corresponding to
        %  the i value, the second corresponding to the j value
        k(u, v) = i(u)^2 + j(v) * i(u);
    end
end

%  If i and j are different lengths, MATLAB won't let you do this...
A = [i' j' k']

disp('i  j  k'), disp(A)

Hope this helps,

Kerry