Hello, I am currently familiarizing myself with MATLAB for my research. I was asked to create a program that reads in two vectors from the user and then graph them. I am currently having difficulty correctly performing the the addition and multiplication of these vectors. I am new to this website and MATLAB as a whole. I was hoping someone could assist me in any way.
Thank you, first and foremost for your support. I have spent the last couple of days researching operation techniques and I have come up with the following code for each different function (all of function data may not be included)
for addition:
a = get(handles.textvector1,'String');
b = get(handles.textvector2,'String');
%if length is the same
if length(a) == length(b)
%add vectors
c = a + b;
%set text to result
set(handles.textvectorresult,'String',c);
%plot result
plot(c)
% or display error message
else
errordlg('Please enter vectors of same size','Size mismatch error','modal')
end
and for multiplication:
a = get(handles.textvector1,'String');
b = get(handles.textvector2,'String');
%if length is the same
if length(a) == length(b)
%add vectors
c = a .* b;
%set text to result
set(handles.textvectorresult,'String',c);
%plot result
plot(c)
% or display error message
else
errordlg('Please enter vectors of same size','Size mismatch error','modal')
end
I end up getting unusually high numbers
Thanks, Prince Njoku

1 comentario

Oleg Komarov
Oleg Komarov el 23 de Mayo de 2011
http://www.mathworks.com/matlabcentral/answers/6200-tutorial-how-to-ask-a-question-on-answers-and-get-a-fast-answer

Iniciar sesión para comentar.

 Respuesta aceptada

Oleg Komarov
Oleg Komarov el 23 de Mayo de 2011

1 voto

  • Multiplication (note the dimensions):
(1:10) * (21:30).' = scalar % 1 by 10 times 10 by 1 - inner/dot product
(1:10).' * (21:30) = matrix % 10 by 1 times 1 by 10 - outer product
(1:10) .* (21:30) = vector % elementwise multiplication
.
  • Summation (again note the dimensions)
(1:10) + 10 or rand(2) + 10 % vector/matrix plus scalar
(1:10) + (11:20) % same dim vector addition
rand(2) + ones(2) % same dim matrix addition
EDIT
You're retrieving text and doing operations on strings not numbers. To see what I mean try this:
'65' .* '33'
65 * 33
To convert strings to numbers a wrapper is:
str2double('65')
or manually for positive numbers:
tmp = '65' - '0';
nTmp = numel(tmp);
out = tmp*(10.^(nTmp-1:-1:0)).';

7 comentarios

Prince
Prince el 23 de Mayo de 2011
Thanks again. When I convert the strings to a double I recieve one large number. what I am attempting to do is add, subtract, multiply and divide each corresponding element of the two vectors. is there a way to convert each element to it's own integer?
thanks
Oleg Komarov
Oleg Komarov el 23 de Mayo de 2011
Can you please post an example input string and what you're trying to accomplish.
Does tmp = '65' - '0'; satisfy your request (to separate a string in numeric integers)?
Prince
Prince el 23 de Mayo de 2011
I appreciate your patience.the input is constructed from the user's choice in my code. I prompt the user for a list of a line of numbers with no specific length. then I prompt them for another line with the same length.
Example:
vector 1 = [1 2 3 4 5]
vector 2 = [2 4 5 6 2]
*vectors should be same length in order to operate
could you please explain tmp = '65'-'0' a little further please
thanks
Prince
Prince el 23 de Mayo de 2011
*missing part*
the result should look something like this if you add:
vector result = [3 6 8 10 7]
thanks
Oleg Komarov
Oleg Komarov el 23 de Mayo de 2011
vector1 + vector2 gives exactly result if they are numeric.
If they are strings
vec1 = '12345';
vec2 = '24562';
Then you need to convert into separate integers.
vec1 -'0' does exactly that.
A string number (ex: '1') is decoded with it's corresponding ASCII numeric value, thus '1' -->double('1') = 49.
'1'-'0' = 49 - 48 = 1 and the result is displayed as double because of the operator "minus".
'123' - '0' operates on all elements of the string array and returns a double vector [1 2 3] and not the scalar 123 directly.
Prince
Prince el 23 de Mayo de 2011
thanks so much!
westley
westley el 30 de Jul. de 2025
thank you so much man!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Characters and Strings en Centro de ayuda y File Exchange.

Preguntada:

el 23 de Mayo de 2011

Comentada:

el 30 de Jul. de 2025

Community Treasure Hunt

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

Start Hunting!

Translated by