フィルターのクリア

Modify the code from the previous example

1 回表示 (過去 30 日間)
Abigail McGahey
Abigail McGahey 2019 年 2 月 19 日
コメント済み: Walter Roberson 2019 年 2 月 22 日
clear, close all;
% Activity problem 6
% First example. With a loop, no ligical indexing.
N=6;
%NxN magic square
A=magic(N);
%Initialise B to be the same size as A with ones
B=ones(N);
%Set B to one where A is divisible by 3
%Loop over all elements
for row=1:N
for col=1:N
%Get current elemnet's value.
value=A(row,col);
%Is it a multiple of 3:
if (mod(value,3)==0)
B(row,col)=0;
end
end
end
disp(B)
% Second example, use logical indexing.
N=6;
A=magic(N)
B=ones(N);
indices=mod(A,3)==0;
B(indices)=0;
disp(B)
% part c
B(mod(A,3)==0)=0;
Now, based on the practice above, modify the code so that it starts with a magic square of size 5x5 and produces a second array that has a value of one where the magic square element is odd and a value of 2 where the corresponding magic square element is even.
  5 件のコメント
Abigail McGahey
Abigail McGahey 2019 年 2 月 19 日
okay, so to be more clear, I am struggling to figure out how to replace the odd elements with one and the even elements with the value of two.
Walter Roberson
Walter Roberson 2019 年 2 月 22 日
"I am struggling" is not a question. A question might be something like how to write loops, or how to detect that a value is odd or even.

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

回答 (1 件)

Pranjal Priyadarshi
Pranjal Priyadarshi 2019 年 2 月 22 日
The code below takes a magic square of size 6 and replaces the even elements with 2 and replaces the odd elements with 1.
N=6;
A=magic(N);
evenindex=(mod(A,2) == 0); %finds the index for even elements
finalans=A;
finalans(evenindex)=2; %replaces even elements with 2
finalans(~evenindex)=1; %replaces odd elements with value 1
disp(A);
disp(finalans);

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by