How to solve matrix dimension must agree error in the following program.

1 view (last 30 days)
d = 100;
r = mod(a,b);
for a = 2:1:d
c = 0;
for b = 1:1:a
if r == 0
c = c+1;
end
end
if c == 2
fprintf('value of a = %d',b,c,d)
end
end
  3 Comments
PRASHIK GAIKWAD
PRASHIK GAIKWAD on 28 Sep 2018
d = 100 and a = 2:1:d and b = 1:1:a c = 0 and if a/b = 0,then c = c+1,when c=2 then print value of a. That's the program I am trying to run.But I am getting an error saying Matrix dimension must agree
madhan ravi
madhan ravi on 28 Sep 2018
you have defined a and b after using those variables?
>> d = 100;
r = mod(a,b);
for a = 2:1:d
c = 0;
for b = 1:1:a
if r == 0
c = c+1;
end
end
if c == 2
fprintf('value of a = %d',b,c,d)
end
end
Undefined function or variable 'b'.

Sign in to comment.

Accepted Answer

Basil C.
Basil C. on 28 Sep 2018
Edited: Basil C. on 28 Sep 2018
Hi, according to what you stated in the comment there are a few mistakes i would like to points out
1. when b=1:1:a you only limit the value of b to be equal to [1,2] as it considers a to be a(1)
2. mod(a,b) requires the size of a and b to be the same which is clearly not since a has a size of 99 while b has only 2 elelments
Guessing from the code it seems like you are trying to write a code for generating prime numbers. Then I feel this is what you are looking for
d = 100;
a = 2:1:d ;
c = 0 ;
for a = 2:1:d
c = 0;
for b = 1:1:a
r = mod(a,b);
if r == 0
c = c+1;
end
end
if c == 2
disp(['The value of a is = ',num2str(b)]);
end
end

More Answers (0)

Categories

Find more on Resizing and Reshaping Matrices 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!