Interested in external applications, mex & engine applications with Fortran, C, C++, etc, particularly in the areas of speed improvement and memory management efficiencies.

Answered

How do i transform a second grade ODE into coordinates?

Looks like motion is restricted to be on the x-y plane, so r is 2D. You have a 2nd order ODE in a 2D frame, so that means you h...

How do i transform a second grade ODE into coordinates?

Looks like motion is restricted to be on the x-y plane, so r is 2D. You have a 2nd order ODE in a 2D frame, so that means you h...

17 hours ago | 0

| accepted

Answered

Runge-Kutta 4 implemetation blowing up

s(:,i+1) = s(:,i) + 1/6*(k1 + 2*k2 + 2*k3 + k4); % changed s(:,i+1) to s(:,i) on rhs

Runge-Kutta 4 implemetation blowing up

s(:,i+1) = s(:,i) + 1/6*(k1 + 2*k2 + 2*k3 + k4); % changed s(:,i+1) to s(:,i) on rhs

17 hours ago | 0

Answered

Need help with error checking

There are various ways to code this, but keeping the same basic architecture you have chosen you could do this: while( true ) ...

Need help with error checking

There are various ways to code this, but keeping the same basic architecture you have chosen you could do this: while( true ) ...

1 day ago | 0

Answered

Assignment has more non-singleton rhs dimensions than non-singleton subscripts ERROR IN FOR LOOP

x(:,i+1)=x(:,i)+A*x(:,i)+B*u(:,i); % changed u(i) to u(:,i)

Assignment has more non-singleton rhs dimensions than non-singleton subscripts ERROR IN FOR LOOP

x(:,i+1)=x(:,i)+A*x(:,i)+B*u(:,i); % changed u(i) to u(:,i)

3 days ago | 0

| accepted

Answered

Runge Kutta integration problem - NaN result

You may have a stiff DE and you can't use RK4 with a fixed step size. What happens when you call ode45( ) instead of ode15s( )?...

Runge Kutta integration problem - NaN result

You may have a stiff DE and you can't use RK4 with a fixed step size. What happens when you call ode45( ) instead of ode15s( )?...

5 days ago | 0

Answered

Calculating the height of a liquid in a sphere using secant method

You need to use a function that is 0 at the h you are looking for. So you need that 30 in your function handle. E.g., func = @(...

Calculating the height of a liquid in a sphere using secant method

You need to use a function that is 0 at the h you are looking for. So you need that 30 in your function handle. E.g., func = @(...

6 days ago | 0

| accepted

Answered

Not enough input arguments

You need to call the function with the N input you just got from the user. E.g., disp(quiz6_func1(x,N))

Not enough input arguments

You need to call the function with the N input you just got from the user. E.g., disp(quiz6_func1(x,N))

6 days ago | 1

| accepted

Answered

ode45 function array error

You have tm(1) = 0, so using tm(1) as an index is invalid: tm=[0 30 etc... : for i=1:length(tm) : Ss_in(tm(i):end)...

ode45 function array error

You have tm(1) = 0, so using tm(1) as an index is invalid: tm=[0 30 etc... : for i=1:length(tm) : Ss_in(tm(i):end)...

6 days ago | 0

Answered

Is FORMAT DEBUG still any useful?

Strange behavior and probably deserves a bug report. E.g., R2019a: >> x = 1; >> y = x; >> x = x + 1; >> format debug >> y...

Is FORMAT DEBUG still any useful?

Strange behavior and probably deserves a bug report. E.g., R2019a: >> x = 1; >> y = x; >> x = x + 1; >> format debug >> y...

6 days ago | 0

| accepted

Answered

Precision (decimal digits) are very low and digits(32) does not help.

This is likely just a display issue and you don't need the Symbolic Toolbox. MATLAB does regular calculations in full double pr...

Precision (decimal digits) are very low and digits(32) does not help.

This is likely just a display issue and you don't need the Symbolic Toolbox. MATLAB does regular calculations in full double pr...

6 days ago | 0

Answered

Consecutive subtraction of the entries of a vector

If A is a row vector: B = [A(1) diff(A)]; If A is a column vector: B = [A(1);diff(A)];

Consecutive subtraction of the entries of a vector

If A is a row vector: B = [A(1) diff(A)]; If A is a column vector: B = [A(1);diff(A)];

7 days ago | 0

| accepted

Answered

generate random number with total sum is 10

Not sure from your wording if you want the row sums to be 1 or 10. If it is 1, then r = rand(6,1); r(:,2) = 1 - r(:,1); Modif...

generate random number with total sum is 10

Not sure from your wording if you want the row sums to be 1 or 10. If it is 1, then r = rand(6,1); r(:,2) = 1 - r(:,1); Modif...

7 days ago | 0

| accepted

Answered

when does changing variable's value affects its structure address?

In addition to what Walter has written, I would point out that all of the rules for variable creation, assignment, and sharing h...

when does changing variable's value affects its structure address?

In addition to what Walter has written, I would point out that all of the rules for variable creation, assignment, and sharing h...

7 days ago | 0

| accepted

Answered

Vector ODE using forward Euler method

Also your main code should look something like this: g = 9.8; mu = 0.5; [t,y]=ode45(@(t,y)rhs_1(t,y,g,mu),[0 100],[0.1; 0]); ...

Vector ODE using forward Euler method

Also your main code should look something like this: g = 9.8; mu = 0.5; [t,y]=ode45(@(t,y)rhs_1(t,y,g,mu),[0 100],[0.1; 0]); ...

9 days ago | 0

Answered

unique function return value of duplicate vector entry

Why can't you just use ind1 and ind2? E.g., V1_1 = V1_1(ind1); V2_1 = V2_1(ind1); V1_2 = V1_2(ind2); V2_2 = V2_2(ind2);

unique function return value of duplicate vector entry

Why can't you just use ind1 and ind2? E.g., V1_1 = V1_1(ind1); V2_1 = V2_1(ind1); V1_2 = V1_2(ind2); V2_2 = V2_2(ind2);

12 days ago | 0

Answered

Insignificant modification of code leads to NaN

Think about what is happening with this loop: for i = 1:num_iterates x = A*x; R(:,i) = x/norm(x); %%%% Problem Line %...

Insignificant modification of code leads to NaN

Think about what is happening with this loop: for i = 1:num_iterates x = A*x; R(:,i) = x/norm(x); %%%% Problem Line %...

21 days ago | 1

| accepted

Answered

Skip instance of a loop with error

Something like this: try fn = x+y+z; %The function is just a representation. I am actually performing a Fi...

Skip instance of a loop with error

Something like this: try fn = x+y+z; %The function is just a representation. I am actually performing a Fi...

21 days ago | 0

| accepted

Answered

Performance of applications that are developed in MATLAB versus C++/C

Any such comparison will depend on exactly what computations are in question. A general comparison of languages probably isn't ...

Performance of applications that are developed in MATLAB versus C++/C

Any such comparison will depend on exactly what computations are in question. A general comparison of languages probably isn't ...

22 days ago | 2

Answered

Numerical Integration by Matlab

Hint: You might look here: https://en.wikipedia.org/wiki/Normal_distribution Knowing that the integral of the Normal density f...

Numerical Integration by Matlab

Hint: You might look here: https://en.wikipedia.org/wiki/Normal_distribution Knowing that the integral of the Normal density f...

22 days ago | 0

Answered

Does MEX compiler (and the associated shared files) automatically ship with all MATLAB distributions of any license type?

Mex routines are not guaranteed to be compatible between different versions of MATLAB, for the very dependency reasons you alrea...

Does MEX compiler (and the associated shared files) automatically ship with all MATLAB distributions of any license type?

Mex routines are not guaranteed to be compatible between different versions of MATLAB, for the very dependency reasons you alrea...

22 days ago | 1

| accepted

Answered

function call returns "index (1.2): subscripts must be either integers 1 to (2^63)-1"

You are missing a multiply operator. There is no implied multiplication in MATLAB with the 2( combination. E.g., u_1 = @(y) ...

function call returns "index (1.2): subscripts must be either integers 1 to (2^63)-1"

You are missing a multiply operator. There is no implied multiplication in MATLAB with the 2( combination. E.g., u_1 = @(y) ...

24 days ago | 0

Answered

Mex, how to copy an array to output

See the solutions I posted here: https://www.mathworks.com/matlabcentral/answers/702682-with-mxmalloc-and-mxsetdoubles-mex-func...

Mex, how to copy an array to output

See the solutions I posted here: https://www.mathworks.com/matlabcentral/answers/702682-with-mxmalloc-and-mxsetdoubles-mex-func...

24 days ago | 0

| accepted

Answered

With mxMalloc() and mxSetDoubles(), mex function crash matlab

You have memory leaks in your current code. E.g., tmpResult = mxMalloc(numRows*numRows*sizeof(*tmpResult)); // this memory ...

With mxMalloc() and mxSetDoubles(), mex function crash matlab

You have memory leaks in your current code. E.g., tmpResult = mxMalloc(numRows*numRows*sizeof(*tmpResult)); // this memory ...

24 days ago | 2

| accepted

Answered

hi I am trying to use this code to solve RK4 equation and I keep receiving this error . what should I do?

Your implementation has several errors: Looks like you are creating i as a vector and then using that for indexing in A(i) You...

hi I am trying to use this code to solve RK4 equation and I keep receiving this error . what should I do?

Your implementation has several errors: Looks like you are creating i as a vector and then using that for indexing in A(i) You...

27 days ago | 0

| accepted

Answered

Filling in multidimensional array efficiently

Something like this maybe? k = 1; % your loop b = r x 1800 matrix f = whatever ch = whatever r = size(b,1)...

Filling in multidimensional array efficiently

Something like this maybe? k = 1; % your loop b = r x 1800 matrix f = whatever ch = whatever r = size(b,1)...

27 days ago | 0

Answered

extract out values out of loop

Make them arrays and assign to the elements. E.g., for i= 1: length(Hi) [XYZ(:,i),H(i),D(i),I(i),F(i)] = wrldmagm(Hi(i),La...

extract out values out of loop

Make them arrays and assign to the elements. E.g., for i= 1: length(Hi) [XYZ(:,i),H(i),D(i),I(i),F(i)] = wrldmagm(Hi(i),La...

28 days ago | 1

| accepted

Answered

Projectile motion with drag. My problem is in the loop as the number of elements are not equal apparently on the left and right. Id appreciate detailed input ive been lost on this for a couple of days now

This makes AccDrag a vector: AccDrag(1,:) = [AccDragX(1) AccDragY(1) 0] So here you have a vector on the right hand side and a...

Projectile motion with drag. My problem is in the loop as the number of elements are not equal apparently on the left and right. Id appreciate detailed input ive been lost on this for a couple of days now

This makes AccDrag a vector: AccDrag(1,:) = [AccDragX(1) AccDragY(1) 0] So here you have a vector on the right hand side and a...

28 days ago | 0

| accepted

Answered

calling another matrix in a matrix

Don't do this! Creating numbered named variables in your code like yakit_1, yakit_2, etc. leads to downstream coding problems a...

calling another matrix in a matrix

Don't do this! Creating numbered named variables in your code like yakit_1, yakit_2, etc. leads to downstream coding problems a...

28 days ago | 0

Answered

Newton Raphson Method in a for loop

You don't have the Newton-Raphson method coded correctly. You need to update the x value you use for the delta within the loop ...

Newton Raphson Method in a for loop

You don't have the Newton-Raphson method coded correctly. You need to update the x value you use for the delta within the loop ...

28 days ago | 0