MATLAB: expressing a double index equation as a matrix

AI Thread Summary
To express a double index equation as a matrix in MATLAB, a nested for loop can be used to iterate through the indices. For example, if calculating a matrix where each element is defined as Iij = vi/vj, the code would involve looping through the length of the vector v. It's important to handle potential division by zero when v contains any zeros. MATLAB's matrix capabilities can simplify many operations, making for loops often unnecessary for simpler tasks. The discussion emphasizes the utility of MATLAB documentation for beginners tackling complex equations.
Deathcrush
Messages
36
Reaction score
0
Just an urgent doubt, I am new to matlab.

So imagine an equation that has two indexes, and that can be expressed as a matrix, how can I do something like this in Matlab? using a for cycle?
 
Physics news on Phys.org
Can you give us an example? What you've said is on the vague side.
 
like for example, if I have Iij=vi/vj considering that I know v for every i or j
 
Deathcrush said:
Just an urgent doubt, I am new to matlab.

So imagine an equation that has two indexes, and that can be expressed as a matrix, how can I do something like this in Matlab? using a for cycle?

Often unnecessary to use a for loop, but you can always do things like this:
Code:
a = [1 2 3; 4 5 6; 7 8 9];
for i = 1:3,
    for j = 1:3,
        a(i,j)
    end
end
Matrices is pretty much what MATLAB is all about. Probably, all your beginner questions can be found in various MATLAB documentation. I'd suggest finding it and reading it.
 
well, the problem is that my equation is not so simple, it is actually a pretty big fluid dynamics model for calculating the viscosity of a mixture of 10 gases, so I have an equation, lots of constant properties, and I am trying to get a 10x10 matrix :S
 
Deathcrush said:
like for example, if I have Iij=vi/vj considering that I know v for every i or j
I'm rusty on my MATLAB, but something like this perhaps?

Code:
for i = 1:length(v),
    for j = 1:length(v),
        r(i,j) = v(i)/v(j);
    end
end
r
Note that division by zero will happen if there's a single 0 in there...
 
oh thanks a lot Grep, that REALLY helped me, now I've finished :)
 

Similar threads

Replies
0
Views
1K
Replies
1
Views
1K
Replies
1
Views
2K
Replies
10
Views
2K
Replies
2
Views
2K
Replies
1
Views
2K
Back
Top