Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Перевод формулы в матлаб
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Вопросы системного уровня проектирования
-=Vitaly=-
Здравствуйте.

Как оптимальней перевести из Маткада следующую формулу? Можно ли это сделать не используя циклы.
Имею 3 одномерных массива данных vt,D,e. Начал писать, без циклов не получается, может я туплю где-то?

Спасибо!
Stanislav
Цитата(-=Vitaly=- @ Nov 19 2007, 18:10) *
Здравствуйте.
Как оптимальней перевести из Маткада следующую формулу? Можно ли это сделать не используя циклы.
Можно. Просто переписав. С учётом синтаксиса языка, ессно.

Цитата(-=Vitaly=- @ Nov 19 2007, 18:10) *
...Имею 3 одномерных массива данных vt,D,e. Начал писать, без циклов не получается, может я туплю где-то?
А в чём, собссно, проблема?
-=Vitaly=-
Проблема в том что я не могу переписать эту формулу не используя циклы, при выполнении операции умножения он говорит что матрица должна быть квадратная. Надо использовать .* вместо простого * ?

пример:
x=[1:100];
y=[4:43];

как создать двухмерный массив x*y ?

for i=1: size(x,2)
for j=1: size(y,2)
k(i,j)=x(i)*y(j);

A проще можно?
-=Vitaly=-
Нашел удобоваримое решение. Делается функция, а потом в цикле ей передаются значения.
Открыл Америку lol.gif
Stanislav
Цитата(-=Vitaly=- @ Nov 20 2007, 10:51) *
пример:
x=[1:100];
y=[4:43];

как создать двухмерный массив x*y ?
По правилу действий над векторами, вот как.
x' * y, например. Получицца матрица. smile.gif

Цитата(-=Vitaly=- @ Nov 20 2007, 12:59) *
Нашел удобоваримое решение. Делается функция, а потом в цикле ей передаются значения.
Открыл Америку lol.gif
Да уж, америка, нечего сказать...
В матлабе хэлп хороший есть, между прочим. Начните с Getting Started.
-=Vitaly=-
Eще маленький вопросик,
Код
function [Fivv1_D_theta_eps] = Fivv1_D_theta_eps(D,theta,eps)
syms sigma;
Fivv1_D_theta_eps_function=((-cos(eps*D)^2)/2-(cos(theta)^2/2)+0.5+(1.5*cos(sigma)^2*cos(theta)^2));
Fivv1_D_theta_eps=double(int(Fivv1_D_theta_eps_function,sigma,-pi/10,pi/10));
end

Почему когда я просто вызываю эту функцию K= Fivv1_D_theta_eps(2,3,0.01) то она не работает, пишет
Error using sigma???
А прописать D=2,theta=3,eps=0.01 в workspace, скопировать в консоль и запустить, то работает!

Опять руки? 07.gif На всяк случай MATLAB 2006b. smile.gif
Спасибо!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.