Function that squares each elemnt of a matrix

172 views (last 30 days)
Norty
Norty on 26 Mar 2020
Answered: harsh raval on 18 Oct 2021
Hi everyone,
I´m strugling with writing a function that is suppose to square each element of my matrix. I tried doing it through vector and then reshaping it, but couldn´t quite hit the correct code. My problem is that i figured out a part of the code but can´t really put it all together since im new to mathlab.
Having matrix n x m then
for 1:n
for 1:m
x.^2
end
end
but i dont really understand or know how to put in the function and what re the variables.
Thanks for any help.
  2 Comments
Torsten
Torsten on 26 Mar 2020
You don't need the for-loops above.
If A is a matrix of arbitrary size, then A.^2 is the matrix with all entries squared.
Can you take it from here ?
Norty
Norty on 27 Mar 2020
I would. But I forgot to add, that its a excercise, where i have to write a loop function for squaring each element of matrix.

Sign in to comment.

Answers (2)

Peng Li
Peng Li on 26 Mar 2020
If you only want to square each element of a matrix, you use .^
For example:
A = randn(100, 100);
B = A.^2;
  4 Comments
Peng Li
Peng Li on 27 Mar 2020
function A2 = myElementSquare(A)
A2 = nan(size(A)); % this pre-allocation speeds up the loop
for iR = 1:size(A, 1)
for iC = 1:size(A, 2)
A2(iR, iC) = A(iR, iC) .^ 2;
end
end
end
save above script as a function file. you can call this function by
Res = myElementSquare(anyNumericMatrix);
for example:
test = randn(100, 100);
test2 = myElementSquare(test);
Norty
Norty on 27 Mar 2020
works just perfectly, Thank you very much, now i understand what i needed!

Sign in to comment.


harsh raval
harsh raval on 18 Oct 2021
a=[1 2; 3 4]
squa1=a^2
squa2=a.^2
squa1 =
7 10
15 22
squa2 =
1 4
9 16
so, for traditional square of the matrix use a^2
but, for square of each element use a.^2

Community Treasure Hunt

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

Start Hunting!