Hello I want to create an i number of matrix with the arrangement that Qbar shows, but it generates a dimension error, what can I do?
for i=1:N
a(i) = input('Direction [deg]: ');
theta_deg = a(i);
theta_rad = theta_deg*pi/180;
Qbar_11(i) = Q_11*((cos(theta_rad))^4)+2*(Q_12+2*Q_66)*((sin(theta_rad))^2)*((cos(theta_rad))^2)+Q_22*((sin(theta_rad))^4);
Qbar_12(i) = (Q_11+Q_22-4*Q_66)*((sin(theta_rad))^2)*((cos(theta_rad))^2)+Q_12*(((sin(theta_rad))^4)+((cos(theta_rad))^4));
Qbar_22(i)= Q_11*((sin(theta_rad))^4)+2*(Q_12+2*Q_66)*((sin(theta_rad))^2)*((cos(theta_rad))^2)+Q_22*((cos(theta_rad))^4);
Qbar_16(i) = (Q_11-Q_12-2*Q_66)*(sin(theta_rad))*((cos(theta_rad))^3)+(Q_12-Q_22+2*Q_66)*((sin(theta_rad))^3)*(cos(theta_rad));
Qbar_26(i) = (Q_11-Q_12-2*Q_66)*((sin(theta_rad))^3)*(cos(theta_rad))+(Q_12-Q_22+2*Q_66)*(sin(theta_rad))*((cos(theta_rad))^3);
Qbar_66(i) = (Q_11+Q_22-2*Q_12-2*Q_66)*((sin(theta_rad))^2)*((cos(theta_rad))^2)+Q_66*(((sin(theta_rad))^4)+((cos(theta_rad))^4));
Qbar(i) = [Qbar_11(i),Qbar_12(i),Qbar_16(i);Qbar_12(i),Qbar_22(i),Qbar_26(i);Qbar_16(i),Qbar_26(i),Qbar_66(i)]
end
the error is ꃭ؀error: Codigo_V4: =: nonconformant arguments (op1 is 1x1, op2 is 3x3)

 Respuesta aceptada

madhan ravi
madhan ravi el 6 de Oct. de 2020

0 votos

Qbar = cell(N, 1); % preallocate properly for other variables also
Qbar{ii} = ... inside loop

5 comentarios

Carlos Betancur
Carlos Betancur el 6 de Oct. de 2020
Thanks, but what I need is to sumation the Qbar(i) matrixs, but how they are in an array I don't know how to do it
madhan ravi
madhan ravi el 6 de Oct. de 2020
Qbar = cell(N, 1);
[Qbar_11, Qbar_12, Qbar_16,...
Qbar_22, Qbar_26, Qbar_66] = deal(zeros(N, 1));
for ii = 1 : N
a(ii) = input('Direction [deg]: ');
theta_deg = a(ii);
theta_rad = theta_deg*pi/180;
Qbar_11(ii) = Q_11*((cos(theta_rad))^4)+2*(Q_12+2*Q_66)*((sin(theta_rad))^2)*((cos(theta_rad))^2)+Q_22*((sin(theta_rad))^4);
Qbar_12(ii) = (Q_11+Q_22-4*Q_66)*((sin(theta_rad))^2)*((cos(theta_rad))^2)+Q_12*(((sin(theta_rad))^4)+((cos(theta_rad))^4));
Qbar_22(ii)= Q_11*((sin(theta_rad))^4)+2*(Q_12+2*Q_66)*((sin(theta_rad))^2)*((cos(theta_rad))^2)+Q_22*((cos(theta_rad))^4);
Qbar_16(ii) = (Q_11-Q_12-2*Q_66)*(sin(theta_rad))*((cos(theta_rad))^3)+(Q_12-Q_22+2*Q_66)*((sin(theta_rad))^3)*(cos(theta_rad));
Qbar_26(ii) = (Q_11-Q_12-2*Q_66)*((sin(theta_rad))^3)*(cos(theta_rad))+(Q_12-Q_22+2*Q_66)*(sin(theta_rad))*((cos(theta_rad))^3);
Qbar_66(ii) = (Q_11+Q_22-2*Q_12-2*Q_66)*((sin(theta_rad))^2)*((cos(theta_rad))^2)+Q_66*(((sin(theta_rad))^4)+((cos(theta_rad))^4));
Qbar{ii} = [Qbar_11(ii), Qbar_12(ii), Qbar_16(ii); Qbar_12(ii), Qbar_22(ii), Qbar_26(ii); Qbar_16(ii), Qbar_26(ii), Qbar_66(ii)];
end
celldisp(Qbar)
Carlos Betancur
Carlos Betancur el 6 de Oct. de 2020
I get an error when entering the last value of ii, so it does not create the last matrix Qbar{ii}.
error: Codigo_V5: Invalid resizing operation or ambiguous assignment to an out-of-bounds array ele
ment
thanks
madhan ravi
madhan ravi el 6 de Oct. de 2020
If you copied my code correctly, it’s highly unlikely to get that error message.
Carlos Betancur
Carlos Betancur el 6 de Oct. de 2020
Thanks !

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 6 de Oct. de 2020

Comentada:

el 6 de Oct. de 2020

Community Treasure Hunt

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

Start Hunting!

Translated by