1. Not finding help here? Sign up for a free 30min tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

MATLAB - interp1 Issue

  1. Jul 15, 2011 #1
    RESOLVED

    1. The problem statement, all variables and given/known data
    Hi,

    Code (Text):
    >>v=[1;2;3;4;5;6];
    P=[2494 4157;1247 2078;831 1386;623 1039;499 831;416 693];
    [P_300,P_500]=interp1(v,P,5.2,'linear')

    Error in ==> interp1 at 79
    xOffset = 1;

    ??? Output argument "varargout{2}" (and maybe others) not assigned during call to "C:\Program
    Files\MATLAB2\R2011a\toolbox\matlab\polyfun\interp1.m>interp1".
    I don't understand why I'm getting this error. I'm trying to assign the two values equal to variables. The code runs fine when I try not to assign the values to variables but I would like to assign the values to variables. I don't see what I'm doing wrong.

    Code (Text):
    >> v=[1;2;3;4;5;6];
    P=[2494 4157;1247 2078;831 1386;623 1039;499 831;416 693];
    interp1(v,P,5.2,'linear')

    ans =

      482.4000  803.4000
    Thanks in advance!

    2. Relevant equations



    3. The attempt at a solution
     
    Last edited: Jul 15, 2011
  2. jcsd
  3. Jul 19, 2011 #2
    You get multiple outputs in a single vector, not [out0, out1, ...] = interp1(...)

    Running the code:
    Code (Text):
    v=[1;2;3;4;5;6];
    P=[2494 4157;1247 2078;831 1386;623 1039;499 831;416 693];
    Q = interp1(v,P,5.2,'linear')
    returns:
    Code (Text):
    >> Q

    Q =

      482.4000  803.4000

    When you are running:
    Code (Text):
    >> v=[1;2;3;4;5;6];
    P=[2494 4157;1247 2078;831 1386;623 1039;499 831;416 693];
    interp1(v,P,5.2,'linear')

    ans =

      482.4000  803.4000
    The output (a vector) is stored in the variable "ans" and it is displayed since you are not using ";" to close the line.
     
  4. Jul 19, 2011 #3
    That makes sense. I didn't realize functions output results into a single vector. I guess I just sort of assumed the opposite. It's something my book never informed me of. Thanks for letting me know.
     
  5. Jul 19, 2011 #4
    yeah no prob.

    You *can* have multiple outputs from a function. However, if you look at the comments for interp1 it only shows one output.

    Contrast this to "help meshgrid" which has multiple outputs. As an example, you can call the meshgridfunction like:

    [X,Y] = meshgrid(x,y) and it will return two outputs.

    Note that these are all optional, and if outputs aren't specified, MATLAB throws the first output into the "ans" variable.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: MATLAB - interp1 Issue
  1. Issue with Mathematica (Replies: 2)

  2. Truss Issues (Replies: 6)

  3. Atmega8 - USART issue (Replies: 6)

Loading...