Matlab error "Matrix dimensions must agree"
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Andrés Olvera
le 28 Mai 2020
Réponse apportée : Clemens Dierks
le 5 Nov 2020
I'm trying to get the integral() of a two functions but I keep getting this error and I don't know why
This is the code for the functions:
R = 0.5; %m
I = 2; %A
u0 = 4*pi*10^-7;
BiotSavart = (u0*R*I)/(4*pi);
max = 50;
px = -R:R/max:R;
py = -R:R/max:R;
pz = 0:R/max:2*R;
fy = @(t) sin(t)./((px-R*cos(t)).^2+(py-R*sin(t)).^2+pz.^2).^(3/2);
fz = @(t) (R-py.*sin(t)-px.*cos(t))./((px-R*cos(t)).^2+(py-R*sin(t)).^2+pz.^2).^(3/2);
By = pz * BiotSavart * integral(fy,0,2*pi);
Bz = BiotSavart * integral(fz,0,2*pi);
I get the error in this line:
fy = @(t) sin(t)./((px-R*cos(t)).^2+(py-R*sin(t)).^2+pz.^2).^(3/2);
0 commentaires
Réponse acceptée
Star Strider
le 28 Mai 2020
Integrating an array, set 'ArrayValued' to 'true':
By = pz .* BiotSavart .* integral(fy,0,2*pi, 'ArrayValued',1);
Bz = BiotSavart * integral(fz,0,2*pi, 'ArrayValued',1);
That runs without error.
2 commentaires
Plus de réponses (1)
Clemens Dierks
le 5 Nov 2020
Hello everybody,
I have the same error in a different situation.
I wrote the function to save two variables (matrices) in a xlsx file within two sheets.
Because xlswrite seems to be deprecated I used 'writematrix'.
A is 9000x2 matrix.
B is 1x1 vector.
The error occurs in when calling the method "writematrix".
Thank you in advance! :)
This is my code:
function [] = save_data(filename, A, B)
save(filename,'solution','DBC10');
writematrix(A, strcat(filename+'.xlsx'), 'sheet', 1)
writecell(B, strcat(filename+'.xlsx'),'sheet', 2)
end
0 commentaires
Voir également
Catégories
En savoir plus sur Shifting and Sorting Matrices dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!