2013-09-24 1 views
0

Я очень новичок, поэтому вам нужно будет говорить новичком. СпасибоMatlab Function Formula Help- Конечно, просто

Вот функция, которую я собрал. Основная формула, которую я хотел бы передать переменным из таблицы, и выплевывая результаты на новый столбец.

function [ f ] = newgravity(m1,m2,r) 

%NewtonsGravityFormula 

% G=6.6738*10^-11 m^3*kg^-1*s^-1 

g=6.6738*10^(-11); 

f=g*m1.*m2./r.^2 

end 

И вот окно команды. Примечание: variables1 - это имя электронной таблицы в окне рабочей области.

m1=variables1(:,1); 

m2=variables1(:,2); 

r=variables1(:,3); 

newgravity(m1,m2,r)=variables1(:,4) 

ПРОБЛЕМА: индексы индекса должны быть либо натуральными натуральными, либо логическими. Что я делаю неправильно? Спасибо

ответ

0

Ну, в первой части сообщения вы определяете функцию newgravity. Но во второй части сообщения вы создаете некоторые значения, а затем говорите, что newgravity(some arguments) = something Эта вторая половина пытается создать новую переменную , называемую newgravity, но это не получается, потому что m1, m2 или r не являются «реальными положительные целые числа или логические ".

Я думаю, что вам нужно выяснить, что вы на самом деле пытаетесь сделать, и как решить проблему. Является ли функция newgravity функцией (вы передаете параметры, она возвращает значение), или это матрица чисел, которую вы создаете из электронной таблицы?

2

Как сказал Боб, я думаю, что у вас есть это неправильно. Вы, вероятно, хотите:

variables1(:,4) = newgravity(m1,m2,r); 

т.е. хранить выход функции в 4-м столбце variables1.