im stuck on making a layered matrix

1 回表示 (過去 30 日間)
Tristan Murphy
Tristan Murphy 2019 年 5 月 3 日
コメント済み: Tristan Murphy 2019 年 5 月 3 日
function surround = surroundWith(a,b)
%function will take a given matrix 'a' and create a ring of numbers 'b' around
%it
surround = zeros(size(a,1)+2,size(a,2)+2); %sets the size of the matrix after the numbers b has been placed around 'a'
for ii = 1:size(a,1)+2
for jj = 1:size(a,2)+2
if (ii == 1 || ii == size(a,1)+2 || jj == 1 || jj == size(a,2)+2)
surround(ii,jj) = b; %setting the ring of pre-allocated zeros around 'a' to be 'b'
end
end
end
for kk = 1: size(a,1)
for ll = 1:size(a,2)
surround(kk+1,ll+1) = a(kk,ll);%setting the zeros within b to the numbers stored in 'a' at the corresponding locations
end
end
end
% if a = [1,2,3:4,5,6], and b = 5 the matrix should come out as:
5 5 5 5 5
5 1 2 3 5
5 4 5 6 5
5 5 5 5 5
im attempting to recreate this using only one parameter and to create a matrix with a 1 at the centre with a ring of numbers layered on top of eachother, increasing in value up to 'b' as the distance from the centre increases so:
%so layeredMatrix(5) should output:
5 5 5 5 5 5 5 5 5
5 4 4 4 4 4 4 4 5
5 4 3 3 3 3 3 4 5
5 4 3 2 2 2 3 4 5
5 4 3 2 1 2 3 4 5
5 4 3 2 2 2 3 4 5
5 4 3 3 3 3 3 4 5
5 4 4 4 4 4 4 4 5
5 5 5 5 5 5 5 5 5
ive been having a lot of trouble with this and would appriciate any help

採用された回答

Geoff Hayes
Geoff Hayes 2019 年 5 月 3 日
Tristan - why not use a for loop
surround = 1;
for k = 2:5
surround = surroundWith(surround, k);
end
  5 件のコメント
Geoff Hayes
Geoff Hayes 2019 年 5 月 3 日
編集済み: Geoff Hayes 2019 年 5 月 3 日
since you are told that this solution would be very helpful then I don't understand why you can't use it. :)
function layered = makelayered(a)
layered = 1;
for k = 2:a
layered = surroundWith(layered, k);
end
end
Tristan Murphy
Tristan Murphy 2019 年 5 月 3 日
alrighty thanks for all the help :)

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by