I want to create a n by 1 matrix. The FDF2=2 is on the top row, while BDF2=3 is on the bottom. And the values of the middle row should all equal to 3. How do I input the values in such matrix?
1 次查看(过去 30 天)
显示 更早的评论
Should I create a zeros(n+1,1) matrix first?
0 个评论
采纳的回答
John D'Errico
2017-4-17
编辑:John D'Errico
2017-4-17
I'm not sure why you would initially create a VECTOR of length n+1, if your final goal is an nx1 vector. :)
No. There is no need to preallocate the vector with zeros, although your mentioning that idea is the only reason I was willing to answer your question. There are lots of ways to create this vector though. A simple one is:
V = [FDF2;repmat(3,n-2,1);BDF2];
An alternative is to preallocate a vector, then stuff the first and last elements.
V = ones(n,1)*3;
V([1 end]) = [FDF2,BDF2];
Lots of other ways to do this, but that covers the first ones I might think of. You can see that the first solution involves concatenation of the indicated elements, whereas the second had me create a vector of the final size, then stuffing the first and last elements as desired. Either is fine.
2 个评论
John D'Errico
2017-4-19
Learn to think in terms of vectors. What is
1:(n-1)
This is a row vector. But if you want a column vector, then what does this do?
(1:(n-1))'
Can you compute the sine of ALL of those values in one call to sin? Of course you can.
Think at a high level, in terms of vectors & arrays, not in terms of loops.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrix Indexing 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!