## matlab error: matrix dimension must agree

on 10 Mar 2013

### Matt J (view profile)

i am trying to solve linear equation by SVD. i get the error, "matrix dimension must agree" at the line x = V*((U'*B)./diag(S));

this is the code

```% question (6) part (1) ...[show how to use SVD to solve linear systems of
% equation
%how SVD is used to solve systems of linear equations
% we have taken a system of linear equation
a = 0.00:100.00;
b = 0.00:100.00;
c = 0.00:100.00;
d = 0.00:100.00;
p = 0.00:100.00;
q = 0.00:100.00;
```
```A = [a b;c d];
B = [p;q];
prompt = 'enter a number';
a = input(prompt);
b = input(prompt);
c = input(prompt);
d = input(prompt);
p = input(prompt);
q = input(prompt);
```
```%if A*x = B is a nxn linear system then
%SVD of A is
[U,S,V]=svd(A,0);
%solution of the equation A*x = B is
x = V*((U'*B)./diag(S));% if we multiply U, S, V transpose then with some rounding error, we get A.
%so US(V(transpose))=A, so USVt.x = B, so x = (USVt)t*B (where t is the
%transpose. so x = Ut.st.(vt)T*b. now U is orthogonal matrix so, Ut = U
%inverse or U'. S is diagonal matrix so St=diag(S) and (Vt)t= V
disp(x);
```

please let me know how to solve this

## Products

### Matt J (view profile)

on 10 Mar 2013

Shouldn't A,B be created after the a,b,...q data are entered?

```prompt = 'enter a number';
a = input(prompt);
b = input(prompt);
c = input(prompt);
d = input(prompt);
p = input(prompt);
q = input(prompt);
```
```A = [a b;c d];
B = [p;q];
```

Matt J

### Matt J (view profile)

on 10 Mar 2013

Or, if you are doing this for a sequence of a(i)...q(i)

```    a = 0.00:100.00;
b = 0.00:100.00;
c = 0.00:100.00;
d = 0.00:100.00;
p = 0.00:100.00;
q = 0.00:100.00;```
`    f=@(z) reshape(z,1,1,[]);`
```    As=[f(a),f(b);f(c) f(d)];
Bs=[f(p);f(q)];```
`   for i=1:length(a)`
```    A=As(:,:,i);
B=Bs(:,:,i);```
`     etc...`
`   end`
Sat m

### Sat m (view profile)

on 10 Mar 2013

thank you. it solved the problem. thank you

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi test