В MATLAB я пытаюсь запустить итерационную функцию решения, которая решает квадратичное уравнение. Каждая итерация вводится в цикл как матрица 1x1 из массива 1x6, но цикл for хочет перекодировать ответ 2x1 в выделенное пространство 1x1.Подстрочное измерение присваивания несоответствие в цикле с функцией решения, выводящей 2x1 из входов 1x1
Я исследовал ячейки и структуры, но безрезультатно я мог заставить их работать. Уравнение работает, если принять за цикл for и просто решить для каждой функции по отдельности, но цель состоит в том, чтобы масштабировать это для цикла, чтобы свернуть через намного больше, чем просто массив 1x6. Вот мой код.
Es=200E3; %MPa
Ys=448; %MPa
D=168.3; %mm
wall=7.11; %mm
Pdesign=27.25;
Ec=23800;
strainc=.003;
ts=7.11-7.11*.8;
Plive=[5.45 8.18 10.90 13.63 16.35 19.08];
syms trepair;
for ii=1:1:length(Plive)
test(ii)=solve(strainc==(Pdesign*D)/(2*Ec*trepair)-Ys*ts/(Ec*trepair)-Plive(ii)*D/(2*(Ec*trepair+Es*ts)));
end
Заранее благодарим за вход y'alls.
Вы должны решить символический? Почему бы не переписать уравнение для решения для trepair напрямую? – Matt
Мэтт, я не понимаю, как не использование символов изменяет выходной массив из 2x1. Не могли бы вы объяснить немного больше? Спасибо. – TurdFurgeson
Характер вашего уравнения требует 2 решения для trepair, потому что он квадратичен относительно trepair, если я правильно сделал математику. Решение для trepair покажет вам это и поможет написать цикл (или функцию) для его решения с использованием квадратичного уравнения. – Matt