Je voudrais exporter les réponses d'une équation de l'ordre de 2 dans un vecteur. L'entrée est R01
et la variable est n
.
Le problème est là où je veux « double » le symbole pour chaque étape de i
, je reçois l'erreur suivante:Vectoriser un symbole avec plus d'une valeur dans une boucle for dans MATLAB
In an assignment A(I)=B, the number of elements in B and I must be the same.
Il n'y aura pas d'erreur si je n'utilise une boucle. Quelle est mon erreur et comment puis-je le modifier que je pourrais obtenir les données comme une matrice ou un vecteur.
R01=[0.07941 0.07942 0.07952 0.07946 0.07951 0.07947]
syms n
for i=1:length(R01)
eq3=((1+n)^2)*R01(i)-(n-1)^2
sol1=solve([eq3]);
nsol(i)=double(sol1);
end
Il y a tellement de questions qui expliquent déjà ce message d'erreur, [par exemple celui-ci] (http://stackoverflow.com/q/33871530/2732801) – Daniel
Merci Daniel. J'ai compris le problème mais la solution n'était pas claire pour moi. Cependant, la compréhension a aidé à le modifier pour mieux. Je ne sais pas si la solution que j'ai écrite dans un post est un moyen efficace ou pas, mais ça marche d'une manière ou d'une autre. des suggestions pour le rendre plus efficace? – Hamed
Les solutions alternatives utilisent un tableau de cellules 'nsol {i} = double (sol1);' ou une matrice 'nsol (i,:) = double (sol1);'. Ce dernier ne fonctionne que lorsque vous avez toujours le même nombre de solutions. – Daniel