Asked by Hello
on 19 Sep 2013

Hello everyone,

I am trying to populate matrix elements so that I can take its determinant.

n=2; r = []; for (i=1:n) t = sym(['r' int2str(i)]); r = [r; t]; end v=cell(n,1); for i=1:n v{i}=zeros(n,n); end v{1}(1,1)=r(1)-1; -------->ERROR! v{1}(2,1)=r(2)-1; v{2}(1,1)=r(1)-1; v{2}(2,1)=r(2)-1;

for i=1:n for j=1:n %v{i}(j,1)=v(j)-1; for k=2:n v{i}(j,k)=p{i}(k,j)-p{i}(1,j); end end end

%above code should replace the below to allow for any values of n. The below code works fine. v{1}=[v(1)-1,p{1}(2,1)-p{1}(1,1);v(2)-1,p{1}(2,2)-p{1}(1,2)]; v{2}=[v(1)-1,p{2}(2,1)-p{2}(1,1);v(2)-1,p{2}(2,2)-p{2}(1,2)];

%compute determinant v_det=cell(n,1); for i=1:n v_det{i}=det(v{i}); end

Error given is: ??? The following error occurred converting from sym to double: Error using ==> mupadmex Error in MuPAD command: DOUBLE cannot convert the input expression into a double array.

If the input expression contains a symbolic variable, use the VPA function instead.

help please!! I tried using the vpa function as suggested with no success.

*No products are associated with this question.*

Answer by Walter Roberson
on 19 Sep 2013

Accepted answer

You initialize v{1} as a numeric array, zeros(). Then you try to store r(1)-1 into it, but r(1) is a symbolic expression. Because it knows that the target v{1}(1,1) is a numeric data type, it tries to convert r(1)-1 to a numeric data type and fails.

Solution: do not initialize v{1} as numeric.

v{1} = [r(1)-1, 0; r(2)-1, 0];

You **might** have to go as far as

Z = sym(0);

v{1} = [r(1)-1, Z; r(2)-1, Z];

Hello
on 19 Sep 2013

Hi Walter,

Thanks for your prompt reply.

I understand this but how would I extend this from a 2 x 2 matrix to a n x n matrix? This is what I am trying to do with the nested forloop in the code above.

Thank you for your help.

Walter Roberson
on 19 Sep 2013

v{i}=sym(zeros(n,n));

Hello
on 19 Sep 2013

Great Walter. Thank you for your assistance! Much appreciated!

Related Content

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

Learn moreOpportunities for recent engineering grads.

Apply Today
## 0 Comments