how to use abs function in this code?

%Write a Matlab script to create random integer matrix with elements between -30 and 30.
%The size of the matrix must be first be read from user input. Use loops to sum of each row.
%Then find the differences between all pairs of these sums.
a=input('Enter the size of rows:');
b=input('Enter the size of columns:');
A=randi([-30 30],a,b)
r=zeros(a);
d=zeros(a);
for i=1:a
for j=1:b
r(i)=r(i)+A(i,j);
end
end
for k=1:a
for l=1:a
d(k,l)=(r(k)-r(l));
end
end
difference=triu(d,1)
%So I write this code and it worked -with a problem-. Let's say I created a 2x2 Matrix.
%TheSumOfFirstRow=2, TheSumOfSecondRow=3. As the result I wanna see both 2-3=-1 and 3-2=1.
%But the code that I wrote calculates just 2-3=-1.
Can someone please help :)

回答(1 个)

a=input('Enter the size of rows:');
b=input('Enter the size of columns:');
A=randi([-30 30],a,b)
r=zeros(a);
d=zeros(a);
for i=1:a
for j=1:b
r(i)=r(i)+A(i,j);
end
end
for k=1:a
for l=1:a
d(k,l)=abs((r(k)-r(l)));
end
end
difference=triu(d,1)

4 个评论

thank you, i tried this already but this only changes the result to positive. i want them both to be in answer. like -n and +n
Then what actually you are trying to do?
Is this?
a=input('Enter the size of rows:');
b=input('Enter the size of columns:');
A=randi([-30 30],a,b)
sum_row=zeros(1,a);
for i=1:a
sum_row(i)=sum(A(i,:));
end
for k=1:length(sum_row)-1
d(k)=sum_row(k+1)-sum_row(k);
end
d(end)=sum_row(end)-sum_row(1);
Difference=d
This is our matrix
A =
-14 9
11 -21
This is the result due to your second code
Difference =
-5 15
15 -5
This is the result how it should be
Difference =
5 (Sum of Row 1 - Sum of Row 2)
-15 (Sum of Row 2 - Sum of Row 1)
The sentences in parantheses are not gonna be in the result, I write them to explain what I exactly mean.

请先登录,再进行评论。

类别

帮助中心File Exchange 中查找有关 Loops and Conditional Statements 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by