How to convert expression to function?

Hi, I am trying to convert my expression to a function, but when I remove the informative text I can not call/run the function. How can I fix this?
w=input('Please enter a vector B=[B1 B2 B3]: ');
c2 = [0 B(2) -B(3)];
c3 = [0 -B(2) B(3)];
c2 = B2/norm(B2)
c3 = B3/norm(B3)
disp(' ');
c2=1*B2;
c3=1*-B2;
disp('The following vectors fulfill the demands above:')
disp(' ');
disp(['c2=[' num2str(c2(1)) ',' num2str(c2(2)) ',' num2str(c2(3)) ']'])
disp(['c3=[' num2str(c3(1)) ',' num2str(c3(2)) ',' num2str(c3(3)) ']'])
disp(' ');
I have tried to add the function expression, as follows:
function(c2,c3) = Test(B)
w=input('Please enter a vector B=[B1 B2 B3]: ');
c2 = [0 B(2) -B(3)];
c3 = [0 -B(2) B(3)];
c2 = B2/norm(B2)
c3 = B3/norm(B3)
disp(' ');
c2=1*B2;
c3=1*-B2;
disp('The following vectors fulfill the demands above:')
disp(' ');
disp(['c2=[' num2str(c2(1)) ',' num2str(c2(2)) ',' num2str(c2(3)) ']'])
disp(['c3=[' num2str(c3(1)) ',' num2str(c3(2)) ',' num2str(c3(3)) ']'])
disp(' ');

Antworten (1)

KALYAN ACHARJYA
KALYAN ACHARJYA am 24 Nov. 2019
Bearbeitet: KALYAN ACHARJYA am 24 Nov. 2019

0 Stimmen

function [c2,c3]=test()
w=input('Please enter a vector B=[B1 B2 B3]: ');
c2 = [0 B(2) -B(3)];
c3 = [0 -B(2) B(3)];
c2 = B2/norm(B2)
c3 = B3/norm(B3)
disp(' ');
c2=1*B2;
c3=1*-B2;
disp('The following vectors fulfill the demands above:')
disp(' ');
disp(['c2=[' num2str(c2(1)) ',' num2str(c2(2)) ',' num2str(c2(3)) ']'])
disp(['c3=[' num2str(c3(1)) ',' num2str(c3(2)) ',' num2str(c3(3)) ']'])
disp(' ');
end
here C2 and C3 as output arduments, if not required, you can avoid them too to just display
1w.png

8 Kommentare

Jenny Andersen
Jenny Andersen am 24 Nov. 2019
Thanks, but I am tryigng to get rid of the informative texts, such as ('Please enter a vector B=[B1 B2 B3]: ') and ('The following vectors fulfill the demands above:') and still be able to run the funktion.
KALYAN ACHARJYA
KALYAN ACHARJYA am 24 Nov. 2019
Bearbeitet: KALYAN ACHARJYA am 24 Nov. 2019
Is the B1,B2, and B3 are scalars or vector?
Is B2 or B(2) you considered as same?
KALYAN ACHARJYA
KALYAN ACHARJYA am 24 Nov. 2019
Bearbeitet: KALYAN ACHARJYA am 24 Nov. 2019
Is this, You didnot answered my question, hence I have to guess
Is this
function [c2,c3]=test(B2,B3)
c2=[0 B2 -B3];
c3=[0 -B2 B3];
c2=B2/norm(B2);
c3=B3/norm(B3);
c2=1*B2;
c3=1*-B2;
disp('The following vectors fulfill the demands above:')
disp(' ');
fprintf('c2=%f',c2)
fprintf('c3=%f',c3)
end
Please note that you have replace the c2 and c3 vectors by scalar in later section of the code, also I have no clue what you trying to do.
13.png
Jenny Andersen
Jenny Andersen am 24 Nov. 2019
B1 and B2 are vectors and B2 is the same as B(2).
KALYAN ACHARJYA
KALYAN ACHARJYA am 24 Nov. 2019
Bearbeitet: KALYAN ACHARJYA am 24 Nov. 2019
This is not same in MATLAB, B2 just a variable name, whereas B(2) accessing the second index element of variable B / array B
Jenny Andersen
Jenny Andersen am 24 Nov. 2019
Ok
But if I try to write as follows, I can not call the function or run it since the informative text is removed. I want to be able to run the function and put in values for B=B1,B2,B3 without the informative text in the code.
function [c2,c3]=test(B)
c2 = [0 B(2) -B(3)];
c3 = [0 -B(2) B(3)];
c2 = B2/norm(B2)
c3 = B3/norm(B3)
disp(' ');
c2=1*B2;
c3=1*-B2;
disp(' ');
disp(['c2=[' num2str(c2(1)) ',' num2str(c2(2)) ',' num2str(c2(3)) ']'])
disp(['c3=[' num2str(c3(1)) ',' num2str(c3(2)) ',' num2str(c3(3)) ']'])
disp(' ');
end
Walter Roberson
Walter Roberson am 24 Nov. 2019
... Delete the disp() calls?

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Programming finden Sie in Hilfe-Center und File Exchange

Gefragt:

am 24 Nov. 2019

Kommentiert:

am 24 Nov. 2019

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by