I am trying to create a function form a vector from my matrix and I do not understand where my mistake is?

1 次查看(过去 30 天)
function A=combined (V)
for V(k)= A(i,j)
k=1;
for
i=1;
j=1;
k=k+1;
end
end
  3 个评论
Laurence Guevremont
编辑:Laurence Guevremont 2016-9-27
Ok so I need transform my matrix into a vector so example: A= [1 2 3; 4 5 6; 7 8 9] And then form a vector A A=[1 2 3 4 5 6 7 8 9]
My function right now does not work, there is a mistake on line 2
dpb
dpb 2016-9-27
Indeed, there are several issues but the one of defining the for...end loop indices and range is key. To do the requested function, using "linear addressing" would be a good way to proceed. Look those up in the documentation and study for loops...

请先登录,再进行评论。

回答(3 个)

Moe_2015
Moe_2015 2016-9-27
编辑:Moe_2015 2016-9-27
You should avoid using a for loop here. You can do something like this:
function myVector=combined(myMatrix)
myVector = reshape(myMatrix,1,numel(myMatrix));
end

dpb
dpb 2016-9-27
"...transform my matrix into a vector"
Really don't need a function for this; Matlab has syntax to do it already. A previous answer shows reshape, except I'd suggest to simply use it ( reshape, that is) inline as shown there in the function instead.
There's another Matlab idiom that's even more compact--
A=A(:).'; % convert A of unspecified dimensions to row vector
NB: the .' transpose operator to return the requested row vector instead of the column vector colon returns.

James Tursa
James Tursa 2016-9-28
Here is an outline of what you need to be using for the for loops (seems to be a requirement for this assignment).
% Insert any initialization code here
for i = 1:size(V,1)
for j = 1:size(V,2)
% Insert your assignment etc code here
end
end

类别

Help CenterFile Exchange 中查找有关 Loops and Conditional Statements 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by