Passing input variables to function

56 次查看(过去 30 天)
Hi,
I am working on a script in which I define variables that then get passed onto a function to do further calculations with.
I am able to pass numerical values across but when I try to pass on a string of say 'yellow' across to the function I get the following error message ' In an assignment A(I) = B, the number of elements in B and I must be the same.'
I was wondering if anyone could point me towards the right approach to take when passing text between Matlab function.
Many thanks in advance.
Hamza
  4 个评论
Hamza
Hamza 2014-4-28
Hi Mischa,
Would this help?
m-file:
number_jackets = 5
colour = 'yellow'
var(1) = number_jackets
var(2) = colour
func = trial(var)
In this example I am trying to pass across the number of jackets and the colour of the jackets.
Is this what you were asking for?
Hamza

请先登录,再进行评论。

采纳的回答

dpb
dpb 2014-4-28
OK, you're needing a cell array to hold the disparate types in one array. Write
var{1} = number_jackets;
var{2} = colour;
instead. NB: the "curlies", the '{}' instead of parens to create the cell array.
For such a case, as it'll be highly likely you'll want to access the two in the function rather than combine in a cell I'd probably either
a) pass them separately, particularly if they're going to be the only arguments to the function, or
b) make the related stuff into a structure with named fields for the clothing article

更多回答(1 个)

Niklas Nylén
Niklas Nylén 2014-4-28
编辑:Niklas Nylén 2014-4-28
The problem is that you are trying to put mixed data types (one number and one string) into the same vector. If you use a cell instead, by replacing () with {} this is possible:
number_jackets = 5
colour = 'yellow'
var{1} = number_jackets
var{2} = colour
You will need to use {} when accessing the elements again.
myJacketColor = var{2}
Another way is to pass them as two separate arguments
func = trial(number_jackets, colour)

类别

Help CenterFile Exchange 中查找有关 Characters and Strings 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by