Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

Undefined function or variable in MATLAB

Asked by Joshua

Joshua (view profile)

on 19 Jul 2013

I have this function saved as element.m Whenever I call on it I say element(Hydrogen) I am trying to get it to display the name, symbol, atomic number, category, ... But it keeps saying Undefined function or variable 'Hydrogen' I don't understand why its doing this.

function [Name, Symbol, Atomic_Number, Category, Proton, Neutron, Electron]=element(e)
%Inputs:
%e - 'Hydrogen' ;
%Outputs:
%Name
%Symbol
%Atomic_Number
%Category
%Proton
%Neutron
%Electron
e=[Hydrogen Helium]
if e=='Hydrogen'
  Name='Hydrogen';
  Symbol='H';
  Atomic_Number='1';
  Category='Nonmetal';
  Proton='1';
  Neutron='';
  Electron='1';
elseif e==Helium
  Name='Helium'
  Symbol='H'
  Atomic_Number='1'
  Category='Noble Gas'
  Proton='4'
  Neutron='2'
  Electron='4'
end 
end 

0 Comments

Joshua

Joshua (view profile)

Products

3 Answers

Answer by per isakson

per isakson (view profile)

on 19 Jul 2013
Accepted answer

What is e=[Hydrogen Helium] intended to do?

8 Comments

Joshua

Joshua (view profile)

on 19 Jul 2013

I did what you said with both strcmp and all, i tried both of them, when i wrote element('Hydrogen') in the command window it said ans=Hydrogen, but i dont understand why its not giving me the other information as well.

per isakson

per isakson (view profile)

on 19 Jul 2013

You have to make a call like

[Name,Symbol,Atomic_Number,Category,Proton,Neutron,Electron]=element('Hydrogen') 
Joshua

Joshua (view profile)

on 19 Jul 2013

Thanks it worked.

per isakson

per isakson (view profile)

Answer by Azzi Abdelmalek

Azzi Abdelmalek (view profile)

on 19 Jul 2013

The variable Hydrogene is not defined in your code, how Matlab will recognize it?

2 Comments

Joshua

Joshua (view profile)

on 19 Jul 2013

I am kind of new to MATLAB, how exactly would i define it if I wanted it to give me the Name, Category, Symbol ...

Joshua

Joshua (view profile)

on 19 Jul 2013

Thanks it worked.

Azzi Abdelmalek

Azzi Abdelmalek (view profile)

Answer by Jason Schneider

Jason Schneider (view profile)

on 19 Jul 2013

Remove

e = [Hydrogen Helium]

Use

strcmp as previously suggested.

Make sure when you call the function it is of the form:

[a b c d e f g] = element('Hydrogen')

You need to define where the rest of the output arguments will be assigned since they are internal variables to the function.

It seems this was also mentioned but the input argument needs to be a string or else Matlab will look for a variable that doesn't exist.

1 Comment

Joshua

Joshua (view profile)

on 19 Jul 2013

Thanks it worked.

Jason Schneider

Jason Schneider (view profile)

Contact us