Element-By-Element Operations using Matlab

I wonder how to calculate the following sum using Element-By-Element Operations Matlab:
∑_(i=1)^4(u_i.[min(0,A_i.x-b_i )]^2)
i=1:4
u_i is a scalar
A_i is a (1,4) vector
b_i is a scalar
and
x is a (4,1) vector

 Risposta accettata

Andrei Bobrov
Andrei Bobrov il 25 Nov 2013
Modificato: Andrei Bobrov il 25 Nov 2013
u*min(0,A*x-b).^2;

3 Commenti

imed NASRI
imed NASRI il 25 Nov 2013
Modificato: imed NASRI il 25 Nov 2013
It doesn't work.
u is a (1,4) vector
A is a (4,4) matrix
x is a (4,1) vector and
b is a (4,1) vector
imed NASRI
imed NASRI il 25 Nov 2013
Modificato: imed NASRI il 25 Nov 2013
I want to calculate automatically this sum:
u(1)*[min(0,A(1,:)*x-b(1))]^2+u(2)*[min(0,A(2,:)*x-b(2))]^2+u(3)*[min(0,A(3,:)*x-b(3))]^2+u(4)*[min(0,A(4,:)*x-b(4))]^2
I corrected

Accedi per commentare.

Più risposte (1)

hope this helps:
u(1)*(min(0,min(A(1,:)))*x-b(1)) .^2+u(2)*(min(0,min(A(2,:)))*x-b(2)) .^2+u(3)*(min(0,min(A(3,:)))*x-b(3)) .^2+u(4)*(min(0,min(A(4,:)))*x-b(4)) .^2
I tried it this way :
clear all; clc
u=[1,2,3,4]; A=[1,2,3,4;5,6,7,8;1,2,3,4;5,6,7,8]; x=[5;6;7;8]; b=[4;5;6;7]; min(0,min(A(1,:)))
u(1)*(min(0,min(A(1,:)))*x-b(1)) .^2+u(2)*(min(0,min(A(2,:)))*x-b(2)) .^2+u(3)*(min(0,min(A(3,:)))*x-b(3)) .^2+u(4)*(min(0,min(A(4,:)))*x-b(4)) .^2
The output comes like:
ans =
370
370
370
370

1 Commento

imed NASRI
imed NASRI il 25 Nov 2013
Modificato: imed NASRI il 25 Nov 2013
My vectors have sometimes a size (1000). In this case your équation becomes so hard to write. I Wonder if i can use a loop to calculate automatically this sum??!!!

Accedi per commentare.

Tag

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by