incompatible array sizes for 2x1 column vectors

조회 수: 8 (최근 30일)
Timothy Dunning
Timothy Dunning 2022년 12월 2일
답변: Timothy Dunning 2022년 12월 7일
I have an array, z, with 2 rows and an iteratively expanding amount of columns the first of which is assigned: z(:,1) = [0,2500];
I pass the current (nth number) value of the array with z = ivpsolver(z(:,n)) and then again with z(:,n+1) = rungekutta(z(:,n));
in this function I get an error on a line that says: znext = z + (1/6)*(Az+2*Bz+2*Cz+Dz); where Az, Bz, Cz and Dz are 1x2 column vectors (as z should be). The error states "Arrays have incompatible sizes for this operation."
am I missing something obvious or is the error likely somewhere else?
  댓글 수: 6
Gokul Nath S J
Gokul Nath S J 2022년 12월 7일
이동: the cyclist 2022년 12월 7일
Hi Timothy Dunning,
As per my understanding, you are calling ivpSolver with five arguments while the function demands for six of them. Check whether all the arguments are properly passed to the function.
Further, the entity [0, 2500] is a row vector of dimension 1 x 2. If your requirement is a 2 x 1 column vector, you might need to specify it as [0; 2500].
Thomas 2022년 12월 7일
Just want to add that you can use function isrow and iscolumn to validate what MATLAB defines as row and column vectors respectively.

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

채택된 답변

Timothy Dunning
Timothy Dunning 2022년 12월 7일
Thanks all, you were all right, i was passing the wrong number of variables but I also had another issue elsewhere that was causing the array, z, to be 1x3 instead of 1x2

추가 답변 (0개)


Help CenterFile Exchange에서 Programming에 대해 자세히 알아보기




Community Treasure Hunt

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

Start Hunting!

Translated by