cancel
Showing results for
Did you mean:
cancel
Showing results for
Did you mean:

4-Participant

Hi guys

I have issue with matrix multiplications.

Please see the file and (hope) help me with it.

Best regards

Andrzej

1 ACCEPTED SOLUTION

Accepted Solutions
23-Emerald II
(To:AC_9854174)

@AC_9854174 wrote:

Hi guys

I have issue with matrix multiplications.

Please see the file and (hope) help me with it.

Hi Andrzej,

I'm not near a Mathcad PC at the moment, but it looks like you have fallen into the long-standing Mathcad "it looks like a vector but it isn't" visual trap.

The key thing to note is that a range variable (s in your case) is *not* a vector (which I'm sure you already know).   However, the result of evaluating a range vector can look very much like a vector.

What you need to do in the above instance is convert s to a vector.   This you can do by the simple expedient of typing "=" after defining s.  Mathcad will then convert the range (1,2..4) to a vector and assign it to s.  I don't like this trick, for a variety of reasons, but it is fairly common practice.   Hopefully, you should the see the result you want.

----

As for why you don't see the intended result, the next key thing to note is that Mathcad treats a range variable (s) as an implicit loop operator.   Mathcad evaluates s for each value of its range.   If you simply evaluate s, then Mathcad displays the evaluation as if it were a vector, but, as stated earlier, it's not - it's  a list of the results of each individual evaluation stacked up on each other to look like a vector.

In your first vectorized expression, Mathcad will calculate b*a(1) and display the result at the top, then b*a(2), and so on.  Mathcad further confuses the range vs vector display by collapsing each of the individual results to make the output look like a nested vector.

Your final example works because each of the two data items actually are vectors.

Hope that isn't too confusing.

This display confusion has been a matter of discussion since the time of Pythagoras (at least, I'm sure I've seen a cuneiform tablet complaining about the issue)..

Stuart

3 REPLIES 3
23-Emerald II
(To:AC_9854174)

@AC_9854174 wrote:

Hi guys

I have issue with matrix multiplications.

Please see the file and (hope) help me with it.

Hi Andrzej,

I'm not near a Mathcad PC at the moment, but it looks like you have fallen into the long-standing Mathcad "it looks like a vector but it isn't" visual trap.

The key thing to note is that a range variable (s in your case) is *not* a vector (which I'm sure you already know).   However, the result of evaluating a range vector can look very much like a vector.

What you need to do in the above instance is convert s to a vector.   This you can do by the simple expedient of typing "=" after defining s.  Mathcad will then convert the range (1,2..4) to a vector and assign it to s.  I don't like this trick, for a variety of reasons, but it is fairly common practice.   Hopefully, you should the see the result you want.

----

As for why you don't see the intended result, the next key thing to note is that Mathcad treats a range variable (s) as an implicit loop operator.   Mathcad evaluates s for each value of its range.   If you simply evaluate s, then Mathcad displays the evaluation as if it were a vector, but, as stated earlier, it's not - it's  a list of the results of each individual evaluation stacked up on each other to look like a vector.

In your first vectorized expression, Mathcad will calculate b*a(1) and display the result at the top, then b*a(2), and so on.  Mathcad further confuses the range vs vector display by collapsing each of the individual results to make the output look like a nested vector.

Your final example works because each of the two data items actually are vectors.

Hope that isn't too confusing.

This display confusion has been a matter of discussion since the time of Pythagoras (at least, I'm sure I've seen a cuneiform tablet complaining about the issue)..

Stuart

4-Participant
(To:StuartBruff)

Hi Stuart

Its so simple solution that I will never come up with it 😉

Thanks a lot

Andrzej

23-Emerald II
(To:AC_9854174)

@AC_9854174 wrote:

Hi Stuart

Its so simple solution that I will never come up with it 😉

Thanks a lot

Hi Andrzej,

Not only you.  It's not intuitive and can cause problems if you expect it to apply to matrices or nested vectors.

Here are a couple of examples where the "displayed" value differs from the actually calculated value.

That's why I usually prefer to explicitly define vectors and not use 'tricks' that don't generalise.

Stuart

Announcements