A=[1 4 5 10 9 3 2 6 8 4]
B=[1 7 3 4 1 10 5 4 7 4]
fRow = B+A(1);
sRow = B+A(2);
tRow = B+A(3);
foRow = B+A(4);
fiRow = B+A(5);
siRow = B+A(6);
seRow = B+A(7);
eRow = B+A(8);
nRow = B+A(9);
teRow = B+A(10);
ans = [fRow; sRow; tRow; foRow; fiRow; siRow; seRow; eRow; nRow; teRow]
please i need help with this, how can i write the code to solve the answer if A and B array length is the diffrent from my own array length
Let say A and B will have to be inputted by the user, and the array Length of A and B inputted by the user is less or greater than 10, how will my code solve that.
This is the output
ans =
2 8 4 5 2 11 6 5 8 5
5 11 7 8 5 14 9 8 11 8
6 12 8 9 6 15 10 9 12 9
11 17 13 14 11 20 15 14 17 14
10 16 12 13 10 19 14 13 16 13
4 10 6 7 4 13 8 7 10 7
3 9 5 6 3 12 7 6 9 6
7 13 9 10 7 16 11 10 13 10
9 15 11 12 9 18 13 12 15 12
5 11 7 8 5 14 9 8 11 8
ans =
12

답변 (2개)

David Hill
David Hill 2021년 8월 6일

0 개 추천

B'+A;

댓글 수: 7

jeffery lamar
jeffery lamar 2021년 8월 6일
please can you be more explanatory, i'm new to matlab.......Thank you
jeffery lamar
jeffery lamar 2021년 8월 6일
imagine we don't know what A and B array Lenght will be, and i want my code to solve A and B no matter the array length
DGM
DGM 2021년 8월 6일
편집: DGM 2021년 8월 6일
In R2016b and later, Matlab can do implicit array expansion. By transposing one of the vectors, the result is the sum of a row vector and a column vector -- a 2D array.
% assuming both A,B are vectors of arbitrary length
A = [1 4 5 10 9 3 2 6 8 4];
B = [1 7 3 4 1 10 5 4 7 4];
C = B + A.'
C = 10×10
2 8 4 5 2 11 6 5 8 5 5 11 7 8 5 14 9 8 11 8 6 12 8 9 6 15 10 9 12 9 11 17 13 14 11 20 15 14 17 14 10 16 12 13 10 19 14 13 16 13 4 10 6 7 4 13 8 7 10 7 3 9 5 6 3 12 7 6 9 6 7 13 9 10 7 16 11 10 13 10 9 15 11 12 9 18 13 12 15 12 5 11 7 8 5 14 9 8 11 8
% what happens if they're different lengths?
A = [1 2 3 4];
B = [1 7 3 4 1 10 5 4 7 4];
C = B + A.'
C = 4×10
2 8 4 5 2 11 6 5 8 5 3 9 5 6 3 12 7 6 9 6 4 10 6 7 4 13 8 7 10 7 5 11 7 8 5 14 9 8 11 8
Thank you, i've gotten it, but the problem now is the output is not in array form, how can make it array fom?
A=[1 4 5 10 9 3 2 6 8 4];
B=[1 7 3 4 1 10 5 4 7 4];
aLenght = length(A);
C = 1;
while(C <= i)
u=A(C)+B
C=C+1;
end
David Hill
David Hill 2021년 8월 6일
What do you mean array form? It is the matrix that you requested in your question.
DGM
DGM 2021년 8월 6일
편집: DGM 2021년 8월 6일
I don't know why you're trying to do this with a loop. For the example you gave, no loops are necessary as we've demonstrated.
This has its own problems:
aLenght = length(A); % this isn't used for anything
C = 1;
while(C <= i) % C is a positive, real integer. it can never be <= sqrt(-1)
u=A(C)+B % this gets overwritten each time
C=C+1;
end
If for some reason (e.g. homework assignment stipulation) you must use a loop, use a for loop instead. If you know the number of iterations beforehand, there's little point dealing with the hazards of a while loop.
Stephen23
Stephen23 2021년 8월 6일
편집: Stephen23 2021년 8월 6일
"but the problem now is the output is not in array form, how can make it array fom?"
What exactly is "array form"?
The answers that DGM has shown you are exactly the same as if you do the same calculation in a loop.
Just much simpler.

댓글을 달려면 로그인하십시오.

Image Analyst
Image Analyst 2021년 8월 6일

0 개 추천

Here is an alternative way using the repmat() function to explicitly turn A and B into 2-D matrices before adding them together:
A=[1 4 5 10 9 3 2 6 8 4]
B=[1 7 3 4 1 10 5 4 7 4]
A2 = repmat(A', 1, length(B))
B2 = repmat(B, length(B), 1)
C = A2 + B2;
It gives the same result as your "ans" and can handle any length of A and B, as long as they're the same of course

카테고리

도움말 센터File Exchange에서 Logical에 대해 자세히 알아보기

태그

질문:

2021년 8월 6일

편집:

2021년 8월 6일

Community Treasure Hunt

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

Start Hunting!

Translated by