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

Mischa Kim
Mischa Kim 2014년 4월 28일
Can you post the code or relevant code snippet?
dpb
dpb 2014년 4월 28일
The problem likely doesn't have much (if anything) to do with passing the variable but in how you're trying to use it -- note the error is a mismatch in size between LHS and RHS of an assignment statement.
You likely are trying to stuff the full string consisting of multiple characters into a single memory location via the subscript.
Precisely how to solve the problem will depend on just what you're trying to accomplish so as Mischa says, post the problematical code so can see where you went wrong, specifically.
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일
Close enough... :)

댓글을 달려면 로그인하십시오.

 채택된 답변

dpb
dpb 2014년 4월 28일

0 개 추천

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

Hamza
Hamza 2014년 4월 28일
Thank you very much dpb, the curlies did the trick! :)
Hamza

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Niklas Nylén
Niklas Nylén 2014년 4월 28일
편집: Niklas Nylén 2014년 4월 28일

0 개 추천

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)

카테고리

도움말 센터File Exchange에서 Annotations에 대해 자세히 알아보기

태그

질문:

2014년 4월 28일

댓글:

2014년 4월 28일

Community Treasure Hunt

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

Start Hunting!

Translated by