Matlab question, very stuck
1 view (last 30 days)
Show older comments
James Harrison
on 10 Jan 2021
Commented: Image Analyst
on 11 Jan 2021
I am very stuck with this question, any help would be appreciated.
function [New_Matrix] = sequence_matrix(n)
%UNTITLED4 Summary of this function goes here
% Detailed explanation goes here
if n ==1
v=2
elseif n==2
v=3
elseif n>=3
i(n) = 2*v(n-1) + 3*v(n-2)
i=zeros(n,n);
m = i;
i(1:n+1:end) = v
end
0 Comments
Accepted Answer
Image Analyst
on 10 Jan 2021
Close but not quite. Try it this way:
function [New_Matrix] = sequence_matrix(n)
% Detailed explanation goes here
New_Matrix = zeros(n);
v = 2;
if n >= 2
v = [2, 3];
end
if n >= 3
for k = 3 : n
v(k) = 2*v(k-1) + 3*v(k-2)
end
end
for k = 1 : n
New_Matrix(k, k) = v(k);
end
end
2 Comments
Image Analyst
on 11 Jan 2021
At the beginning, after you assign New_Matrix, say
if n < 2
warningMessage = sprintf('Error. Invalid input.\nYou entered n = %d.\nn must be 2 or greater', n);
uiwait(errordlg(warningMessage));
return;
end
More Answers (1)
William
on 10 Jan 2021
Your program seems to be a little uncertain about whether v is a number or a vector, and it also doesn't assign the values correctly into the diagonal of the matrix i(). However, the general sequence of operations is correct. Let me suggest the following:
- Create the vector v as a vector with n elements, using v = zeros(1,n);
- Fill in the values of v(j), with v(1) = 2, v(2) = 3, and v(j) = 2*v(j-1) + 3*v(j-2) for all j > 2;
- Then put the values of v into the diagonal of a matrix I using I = diag(v);
Let me know how it turns out!
0 Comments
See Also
Categories
Find more on Startup and Shutdown in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!