MATLAB Answers

generating an equispaced vector using a variable

조회 수: 10(최근 30일)
Stephen Devlin
Stephen Devlin 15 Mar 2018
댓글: Stephen Devlin 15 Mar 2018
Hi, I have a variable that I want to use to make each variable in part of a vector equi-spaced, and I cannot figure out why it is not working. In the code below it works for variable "a" but not "aNumber", I'm sure this is obvious but I cannot see it. Does anyone know why Matlab is treating "a" differently from "aNumber"?
B=nan(57,5)
aNumber=1.111
a=1
B(1:50,1)=(1:50)
B(1:50,2)=(1:1:50)
B(1:50,3)=(a:1:a*50)
B(1:50,4)=(a:a*50)
B(1:50,5)=(aNumber : aNumber*50)
gives...
Subscripted assignment dimension mismatch.
Error in untitled36 (line 25)
B(1:50,5)=(aNumber : aNumber*50)
Best regards,
Steve

  댓글 수: 5

표시 이전 댓글 수: 2
Stephen Devlin
Stephen Devlin 15 Mar 2018
For some insane reason I just thought aNumber:aNumber*50 would give 50 multiples of aNumber, much appreciated assistance from everybody, apologies for overlooking the formatting which didn't include aNumber as code.
Guillaume
Guillaume 15 Mar 2018
aNumber * (1:50)
would give the 50 multiples
Stephen Devlin
Stephen Devlin 15 Mar 2018
Thank you Guillaume

로그인 to comment.

채택된 답변

KSSV
KSSV 15 Mar 2018
This would be more apt:
B(1:50,5)=linspace(aNumber , aNumber*50,50)
then
B(1:50,5)=(aNumber : aNumber*50)
Your line creates 1X55 vector, so the error...you actually need 1x50 vector.

  댓글 수: 3

Stephen Devlin
Stephen Devlin 15 Mar 2018
hi KSSV, how is it creating a 1x55 vector? Ive checked your answer and it works, I still can't see why mine didn't for "aNumber" when the same code worked for "a"?
Guillaume
Guillaume 15 Mar 2018
how is it creating a 1x55 vector
>> aNumber = 1.111
>> aNumber*50
ans =
55.549999999999997
>> aNumber : aNumber*50
ans =
Columns 1 through 9
1.111 2.111 3.111 4.111 5.111 6.111 7.111 8.111 9.111
...
Column 55
55.111
Stephen Devlin
Stephen Devlin 15 Mar 2018
(stabs head with fork) I get it now, thanks KSSV

로그인 to comment.

추가 답변(0개)

이 질문에 답변하려면 로그인을(를) 수행하십시오.


Translated by