Basic Vector Operations

조회 수: 33 (최근 30일)
Prince
Prince 2011년 5월 23일
댓글: westley 2025년 7월 30일
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
Oleg Komarov
Oleg Komarov 2011년 5월 23일
http://www.mathworks.com/matlabcentral/answers/6200-tutorial-how-to-ask-a-question-on-answers-and-get-a-fast-answer

댓글을 달려면 로그인하십시오.

채택된 답변

Oleg Komarov
Oleg Komarov 2011년 5월 23일
  • 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
Prince
Prince 2011년 5월 23일
thanks so much!
westley
westley 2025년 7월 30일
thank you so much man!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Characters and Strings에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by