Help with using "While Loop"

Hello,
I am trying to figure out how to do a problem using the "while" command. The instructions on the problem are:
Consider the array A
A = [3, 5, -4; -8, -1, 33; -17, 6, -9]
Write a program that computes the array B by computing the natural logarithm of all elements in A whose value is no less than 1, and adding 20 to each element that is equal to or greater than 1.
  • a.) Using a "for" loop
  • b.) Using a "while" loop.
I have already completed part a, but part b is giving me some troubles. Here is what I have so far:
clc, clear all, format compact
A = [3, 5, -4; -8, -1, 33; -17, 6, -9];
m = 1:size(A,1);
n = 1:size(A,2);
while A(m,n) >= 1;
A(m,n) = A(m,n) + log(A(m,n));
otherwise A(m,n) = A(m,n);
end
disp(A)
I am getting the error "Illegal use of reserved keyword "otherwise". when I am running the script. By removing the "otherwise" portion, it just gives me the original array A.
Any help would be very much appreciated!
Thanks,
Nick

2 comentarios

per isakson
per isakson el 16 de Oct. de 2015
  • "adding 20 to each element" &nbsp I cannot spot "20" in the code
  • otherwise is legal only in the switch statement
Nicholas
Nicholas el 17 de Oct. de 2015
Thank you for catching that. Not sure how I missed the 20. Accidentally typed out the matrix again instead of 20. I also didn't know that otherwise only works for switch. I appreciate the help! I replaced otherwise with elseif instead, and I still receive the same error, but regarding elseif instead.

Iniciar sesión para comentar.

Respuestas (2)

Image Analyst
Image Analyst el 16 de Oct. de 2015

0 votos

Hint
while k < numel(A)
if A(k) .........
elseif
end
k = k + 1;
end

2 comentarios

Nicholas
Nicholas el 17 de Oct. de 2015
I know the general format for while statement, but did not realize that otherwise was only valid for switch statements as the other comment mentioned. Having replaced otherwise with elseif, I am still receiving the same error but regarding elseif instead of otherwise. The part of this I find confusing is that it is dealing with a matrix, so I am having a hard time relating the matrix into the general format.
Image Analyst
Image Analyst el 17 de Oct. de 2015
Make it easy for us to help you, not hard. I don't have the Mind Reading Toolbox yet so I don't know the current state of your code. Please post all your code, and all the red text - don't snip out or paraphrase any of it.

Iniciar sesión para comentar.

Walter Roberson
Walter Roberson el 17 de Oct. de 2015

0 votos

When you have a loop which is
for n = 1 : Value
some code
end
then you can replace it with
n = 1;
while n <= Value
some code
n = n + 1;
end

Categorías

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

Preguntada:

el 16 de Oct. de 2015

Respondida:

el 17 de Oct. de 2015

Community Treasure Hunt

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

Start Hunting!

Translated by