I want to do a while loop so given array A=[2, 4, 6;9, 10, 11; -1, -3 , 12). I want generate B whose elements are the natural logarithm of the values in A if the values are greater than 1. remaining elements of B can be obtained by adding 21 to each of the corresponding elements of A

 Respuesta aceptada

Image Analyst
Image Analyst el 1 de Nov. de 2013

1 voto

A vectorized solution:
A=[2, 4, 6;9, 10, 11; -1, -3 , 12] % Define input data.
B = A + 21 % Initialize B
moreThan1 = A > 1 % Find elements greater than 1.
B(moreThan1) = log(A(moreThan1)) % Assign them to log(A).

Más respuestas (2)

Iain
Iain el 1 de Nov. de 2013

0 votos

count = 0
while count < numel(a)
count = count + 1;
if a(count)>1
b(count) = log(a(count));
else
b(count) = log(a(count)+21);
end
end
There are other, better, faster methods.
Mehmet Mert Aktas
Mehmet Mert Aktas el 11 de Mayo de 2016

0 votos

clear clc a = [2, 4, 6; 9, 10, 11; -1, -3, -12]; b = zeros(size(a)); for i = 1: 3 for j = 1: 3 if (a(i,j) > 1) b(i,j) = log(a(i,j)); else b(i,j) = a(i,j) + 21; end end end

Categorías

Más información sobre Loops and Conditional Statements en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 1 de Nov. de 2013

Respondida:

el 11 de Mayo de 2016

Community Treasure Hunt

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

Start Hunting!

Translated by