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

Answered

Computer crashed when calculating matrix (mixed with sparse and full) multiplication and summation

Remember that each element of the B*C result is simply the dot product of a row of B with a column of C. If that column of C ha...

Computer crashed when calculating matrix (mixed with sparse and full) multiplication and summation

Remember that each element of the B*C result is simply the dot product of a row of B with a column of C. If that column of C ha...

7 hours ago | 0

| accepted

Answered

Fast vector reshaping/permutation

Don't do the permute( ) operation. Just use pagemtimes( ) downstream in your code with the appropriate 'transpose' option. Thi...

Fast vector reshaping/permutation

Don't do the permute( ) operation. Just use pagemtimes( ) downstream in your code with the appropriate 'transpose' option. Thi...

10 hours ago | 1

Answered

Can someone explain this Loop?

Of the numbers 1 ... 10 that get produced by the randperm( ) call, only three of them are less than 4: 1, 2, 3. 1 will cause n...

Can someone explain this Loop?

Of the numbers 1 ... 10 that get produced by the randperm( ) call, only three of them are less than 4: 1, 2, 3. 1 will cause n...

1 day ago | 0

| accepted

Answered

How to generate unique random integers between 1 to n (with no possibility of Sequence)

If 1:n is the only sequence you don't want, just use randperm(n) and reject the one case you don't want. I.e., if you get it the...

How to generate unique random integers between 1 to n (with no possibility of Sequence)

If 1:n is the only sequence you don't want, just use randperm(n) and reject the one case you don't want. I.e., if you get it the...

5 days ago | 0

Answered

How do solve four variables with one equation using Runge-kutta?

You have three state variables, namely v, lc, and z. But you only have code for updating v. You need code for updating lc and ...

How do solve four variables with one equation using Runge-kutta?

You have three state variables, namely v, lc, and z. But you only have code for updating v. You need code for updating lc and ...

5 days ago | 1

| accepted

Answered

A code and plot a graph for a projectile motion of a ball

Your main problem is that you don't have enough state variables. You have these two equations: x'' = 0 y'' = -g That's two 2...

A code and plot a graph for a projectile motion of a ball

Your main problem is that you don't have enough state variables. You have these two equations: x'' = 0 y'' = -g That's two 2...

5 days ago | 0

Answered

Converting Struct field to array

Does this do what you want? MyMatrix = vertcat(MyStruct.Field);

Converting Struct field to array

Does this do what you want? MyMatrix = vertcat(MyStruct.Field);

7 days ago | 0

| accepted

Answered

Trying to build a new nx4 array from an existing nx4 array using logical values

Assuming quatAB is a standard numeric matrix, use your logical variable for the first index and colon for the second index: m =...

Trying to build a new nx4 array from an existing nx4 array using logical values

Assuming quatAB is a standard numeric matrix, use your logical variable for the first index and colon for the second index: m =...

8 days ago | 0

Answered

How do I combine a structure array into one structure

F = fieldnames(A); n = numel(F); C = arrayfun(@(i)vertcat(A.(F{i})),1:n,'uni',false); FC = [F';C]; B = struct(FC{:});

How do I combine a structure array into one structure

F = fieldnames(A); n = numel(F); C = arrayfun(@(i)vertcat(A.(F{i})),1:n,'uni',false); FC = [F';C]; B = struct(FC{:});

8 days ago | 0

Answered

Finding optimal value for x

You could try this function to get numeric values for local minimums: https://www.mathworks.com/help/matlab/ref/fminsearch.html...

Finding optimal value for x

You could try this function to get numeric values for local minimums: https://www.mathworks.com/help/matlab/ref/fminsearch.html...

8 days ago | 0

Answered

Using fprintf to save a matrix changes the order of my matrix

MATLAB stores 2D matrices in column order. That is, the numbers in your matrix are stored in memory in this order: 0, 1, 2, 3,...

Using fprintf to save a matrix changes the order of my matrix

MATLAB stores 2D matrices in column order. That is, the numbers in your matrix are stored in memory in this order: 0, 1, 2, 3,...

9 days ago | 0

Answered

please help me to convert c code into matlab code for partial shading of solar panel using equilibration algorithm

In addition to what @Image Analyst has written, I would advise turning this into a function with p1, p2, p3 as input arguments a...

please help me to convert c code into matlab code for partial shading of solar panel using equilibration algorithm

In addition to what @Image Analyst has written, I would advise turning this into a function with p1, p2, p3 as input arguments a...

9 days ago | 0

Answered

Difference between using single quotes ('xyz') and double quotes ("xyz") in formatspec

In MATLAB, single quotes ' ' are used to create char type variables, and double quotes " " are used to create string type variab...

Difference between using single quotes ('xyz') and double quotes ("xyz") in formatspec

In MATLAB, single quotes ' ' are used to create char type variables, and double quotes " " are used to create string type variab...

15 days ago | 0

| accepted

Answered

Error in ode45 while doing numerical integration

The function handle you pass to ode45( ) needs to have a (t,y) signature. E.g., [t,y] = ode45(@(t,y) myode(t,gt,g), tspan, ic, ...

Error in ode45 while doing numerical integration

The function handle you pass to ode45( ) needs to have a (t,y) signature. E.g., [t,y] = ode45(@(t,y) myode(t,gt,g), tspan, ic, ...

15 days ago | 0

Answered

How to multiply higher order matrices?

You may need to permute your arrays first to get your desired 2D slices in the first two dimensions. A = whatever B = whatever...

How to multiply higher order matrices?

You may need to permute your arrays first to get your desired 2D slices in the first two dimensions. A = whatever B = whatever...

22 days ago | 2

Answered

Using matrix to index another matrix?

Does this do what you want: x = sub2ind(size(B),(1:size(A,1))',A(:,1),A(:,2),A(:,3)); Output = B(x);

Using matrix to index another matrix?

Does this do what you want: x = sub2ind(size(B),(1:size(A,1))',A(:,1),A(:,2),A(:,3)); Output = B(x);

22 days ago | 0

| accepted

Answered

Equivalent of c++'s NULL or python' s None in MATLAB

This will probably depend on how these are used downstream in your code and whether you have arrays of them to deal with. If th...

Equivalent of c++'s NULL or python' s None in MATLAB

This will probably depend on how these are used downstream in your code and whether you have arrays of them to deal with. If th...

27 days ago | 1

Answered

X Y Z angles of a D20 (icosahedron) for gravity projection

If you have the 3D normal vectors, then all you need to do is take the dot product between them and the "flat" face normal vecto...

X Y Z angles of a D20 (icosahedron) for gravity projection

If you have the 3D normal vectors, then all you need to do is take the dot product between them and the "flat" face normal vecto...

27 days ago | 1

| accepted

Answered

modify a row of an array within a function

This can sometimes be done inplace depending on how you write the function and how you call the function. One requirement is yo...

modify a row of an array within a function

This can sometimes be done inplace depending on how you write the function and how you call the function. One requirement is yo...

29 days ago | 0

Answered

Operator '-' is not supported for operands of type 'function_handle'.

You are using u as both an input argument and a global function handle function A3 = odeFun(t, u) <-- input argument global R...

Operator '-' is not supported for operands of type 'function_handle'.

You are using u as both an input argument and a global function handle function A3 = odeFun(t, u) <-- input argument global R...

29 days ago | 0

Answered

Solve a system of 3 second order ODE

You will need to change your scalar equations to vector equations, and you will need to change your derivative function to a vec...

Solve a system of 3 second order ODE

You will need to change your scalar equations to vector equations, and you will need to change your derivative function to a vec...

29 days ago | 0

Answered

Need to speed up the generation of random numbers.

You could over generate a large matrix and then pick off the number of elements you need later. E.g., C = rand([5 size(A)]); T...

Need to speed up the generation of random numbers.

You could over generate a large matrix and then pick off the number of elements you need later. E.g., C = rand([5 size(A)]); T...

30 days ago | 0

Answered

How do i create a large matrix with a formula?

N = 1000; a = 2 * pi * f * T * (0:N-1)'; x = [cos(a) -sin(a)];

How do i create a large matrix with a formula?

N = 1000; a = 2 * pi * f * T * (0:N-1)'; x = [cos(a) -sin(a)];

30 days ago | 1

Answered

Matrix multiplication to get covariance matrix

@Tintin Milou MATLAB variables do not have a "symmetric" attribute flag that I know of. Just because you create a variable that...

Matrix multiplication to get covariance matrix

@Tintin Milou MATLAB variables do not have a "symmetric" attribute flag that I know of. Just because you create a variable that...

30 days ago | 0

Answered

Why can't complex integer arithmetic be done?

I think the main reason for disallowing integer array arithmetic in MATLAB is because of the ambiguity caused by the max(min( ))...

Why can't complex integer arithmetic be done?

I think the main reason for disallowing integer array arithmetic in MATLAB is because of the ambiguity caused by the max(min( ))...

1 month ago | 1

Answered

How can I split C/C++ Code in multiple files and still use MEX

Use the -c option to compile the B and C stuff to produce only object files without any linking: mex -c B.c C.c Then compile y...

How can I split C/C++ Code in multiple files and still use MEX

Use the -c option to compile the B and C stuff to produce only object files without any linking: mex -c B.c C.c Then compile y...

1 month ago | 1

| accepted

Answered

Matrix multiplication. Trying to get scalar solution

Those should be matrix multiples, not element-wise multiplies. Remove the dots. E.g., top=nMode * M * u0; bot=nMode * M * nM...

Matrix multiplication. Trying to get scalar solution

Those should be matrix multiples, not element-wise multiplies. Remove the dots. E.g., top=nMode * M * u0; bot=nMode * M * nM...

1 month ago | 0

| accepted

Answered

Adapt RK4 ODE Solver from first order to 2nd order

Try this for starters yt = zeros(numel(y0),length(h:tfinal)); %Memory Allocation And then maybe this is what is intended for i...

Adapt RK4 ODE Solver from first order to 2nd order

Try this for starters yt = zeros(numel(y0),length(h:tfinal)); %Memory Allocation And then maybe this is what is intended for i...

1 month ago | 0

| accepted

Answered

Error using vertcat Dimensions of arrays being concatenated are not consistent.

You have a mismatch in the number of arguments. E.g., this [V,y] = ode45(@(~,y) fun(del_h1,del_cp1,cp1),Vspan,y0); should be ...

Error using vertcat Dimensions of arrays being concatenated are not consistent.

You have a mismatch in the number of arguments. E.g., this [V,y] = ode45(@(~,y) fun(del_h1,del_cp1,cp1),Vspan,y0); should be ...

1 month ago | 0

Answered

Replacing matrix n column values

E.g., temp = A(:,70:80); temp(temp<0) = 0; A(:,70:80) = temp;

Replacing matrix n column values

E.g., temp = A(:,70:80); temp(temp<0) = 0; A(:,70:80) = temp;

1 month ago | 1

| accepted