more non-singleton rhs dimensions

조회 수: 1 (최근 30일)
Matthew Gilroy
Matthew Gilroy 2020년 10월 26일
댓글: Matthew Gilroy 2020년 10월 26일
I am getting an error here but I am not sure why.
I am trying to create a 1x5 matrix for the 5 c answers using the 5 t values in that matrix.
Thanks
  댓글 수: 4
Star Strider
Star Strider 2020년 10월 26일
Copy and past the actual code rather than an image of it, then highlight all of it and use the ‘Insert a line of code’ button to format it cortrectly.
Matthew Gilroy
Matthew Gilroy 2020년 10월 26일
x = (0:1:100)'; 'metres'
Ex = 0.02; 'm^2/s'
m = 1;
u = 0.5; 'm/s'
c = zeros(1,5);
t = [30, 60, 90, 120, 150];
for t = (1:5)
c(1,t) = (m ./ (sqrt(4.*pi.*Ex.*t))).* exp(-((x - u.*t).^2)./(4.*Ex.*t));
end

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

채택된 답변

Jon
Jon 2020년 10월 26일
I'm thinking that you want to loop through your t values. You first assign t to the vector [30,60,90,120,150] but then reassign it in your for loop to (1:5) or [1 2 3 4 5]. You instead need to index your values of t inside of your loop something like
x = (0:1:100)'
Ex = 0.02
m = 1
u = 0.5
c = zeros(101,5)
t = [30,60,90,120,150];
for k = 1:5
c(:,k) = m/sqrt(4*pi*Ex*t(k))*exp(-(x-u*t(k)).^2)./(4*Ex*t(k))
end
  댓글 수: 2
Jon
Jon 2020년 10월 26일
Note that the ".*" are only needed for element by element multiplication. You don't need that when you multiply scalars times vectors. Also I think you were trying to put in comments for the units. To do that you need to proceed them with a % sign e.g
Ex = 0.02; % m^2/s
Matthew Gilroy
Matthew Gilroy 2020년 10월 26일
Cheers this has worked thanks for the help.

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

추가 답변 (1개)

Matthew Gilroy
Matthew Gilroy 2020년 10월 26일
Sorry I attatched the wrong screenshot this is the correct one
Thanks

카테고리

Help CenterFile Exchange에서 Startup and Shutdown에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by