Best practices to use Matlab assert
No C debug mode slows every statement down. ASSERT costs the overhead of checking whatever you instruct MATLAB to check. It ma...

Program to generate permutations in a certain order
clear X X{1}=[1 1 0 1]; X{2}=[1 0 1 0]; X{3}=[1 0 1 1]; X{4}=[1 1 1 0]; X{5}=[0 1 0 1]; X{6}=[0 0 0 1]; n=length(X); P...

Equivalent of c++'s NULL or python' s None in MATLAB
If you use recent MATLAB you can use also missing and ismissing

Question

How to change number precision with writestruct
The number of significant digits of writestruct is quite limited, as showed by this example s=struct('pi',pi); writestruct(s,...

### 1

Replace nested loops with a matrix
i=2:nhx-1; j=2:nhy-1; U(i,j)= U(i,j)-dt*(Pc(i+1,j)-Pc(i-1,j))/(2*hx);

| accepted

Get indices of all rows containing a value - repeated or not
[c,~,J] = unique(sort(connections,2),'rows'); [i,~,I] = unique(c); [~,j] = ismember(i, id); xy = [x(j) y(j)]; I = reshape(I,...

| accepted

Is there a way to vectorise this vector/matrix product?
G = real(dot(W,R*W,1)).';

Relative Ranking of position in an array
I10=[1 2 1 1 1 2 1 1 2 2 1 3 6 3 1 3 3 1 4 3 4 3 2 3 4 2 3 3 4 2 7 4 6 2 5 4 5 5 5 5 6 7 5 4 5 8 8 6 4 5 4 6 6 7 9 7 7 2 7...

Optimize repeated permutation of a large vector
s = [1 2 3 4 5 6 7 8]; n=[4 3 1]; c=cumsum([0 n]); p=2:length(s)+1; p(c(2:end))=c(1:end-1)+1; s(p)

Error using fwrite : Cannot write value: sparse arrays are unsupported.
[i,j,v] = find(S); then save i,j,v with fwrite

| accepted

Optimize repeated permutation of a large vector
s = [1 2 3 4 5 6 7 8]; i=1:length(s); n=[4 3 1]; c=cumsum([1 n]); b=cumsum(ismember(i,c)); p=mod(i+1-c(b),n(b))+c(b) s(p...

| accepted

find the position of all non-zero minimum values in each column of a matrix
a = [2 0 3;1 2 5;0 0 0;1 3 3;0 0 6;0 2 7;1 0 0] b=a; b(b==0)=NaN; [r,c]=find(b==min(b,[],1)); rmin=accumarray(c(:),r(:),[siz...

Turn logical matrix into string vector
Assuming idx has one 1 per row idx = logical([0 1 0; 0 0 1; 1 0 0; 1 0 0; 0 1 0]); vec = ["A","B","C"]; [r,c]=find(idx); r...

Symetric matrix power optimization
Youeu can edit MATLAB function mpower.m and try to the basic calculation (line 76 in my case) D = D*D; % I assume p is integer...

| accepted

How can I avoid loop for code optimization?
Use MultipleQR FEX (C compiler for MEX build is required, unless for Windows platform) y = linspace(1,10,1000); Y = reshape(...

random number of two random varibles.
If K is the (2 x 2) covariariance matrix of (w,T) and mu (2 x 1) is the mean of (w,T), you can generate them like this n = 100...

How to avoid a negative solution with fmincon, including an external equation?
The condition f2 = - 2*x1 - 10*x2 + 30 >= 0 is equivalen to 2*x1 + 10*x2 + 0*f1 <= 30. So set A = [2 10 0] b = 30 If you ...

| accepted

How can I optimize coefficients of a polynomial using fmincon?
"The overall goal is to minimize the length of the cost function " The overall length is L = integral sqrt(dx/dt^2+dy/dt^2+dy/...

Is it possible to vectorize this?
NOTE the order of most is sorted with this algorithm: A = [1 2 0 3 4 6; 9 3 4 0 9 5; 4 3 0 5 6 7; 3 7 7 3 0 0...

Diagonal of non-square matrix
n = 8; A = spdiags([2 3 4]+zeros(n,1),0:2,n,n+2); A = full(A) % if prefered

Randomly splitting of a number in a sum format.
This code will generate "uniform" partition distribution, in the sense that all possible partition has equal probability: n = 1...

Will codegen accelerate sub-functions?
Yes coder translates the sub-functions to C as well.

| accepted

Randomly splitting of a number in a sum format.
n = 10; for j=1:10 r = n; i = 1; clear s while r > 0 s(i) = ceil(r*rand); r = r-s(i); ...

| accepted

mldivide algorithm for an underdetermined system of equations
The outline of "\" goes as following: % Test data A=randi(10,3,2)*randi(10,2,5) b=randi(10,3,1) [Q, R, P] = qr(A,'vector')...

| accepted

Function to create struct with parameters
s = buildparams() function s = buildparams() a = 1; b = 2; s = gathervars(); end function s = gathervars() vars = eva...

Submitted

nchoosek_enum
nchoosek with enumerate selection. This function never build the full combination array in memory

Creating separate combinations with repetition
I program a function nchoosek_enum that is almost like nchoosek, excepted that you can pass an enumerated array i that selects t...

How to get all combinations from this matrix?
ch=['MRWI' 'IDMZ' 'CGBI' 'JKNO']; c=num2cell(ch,2); [c{:}]=ndgrid(c{:}); n=size(c,1); c = reshape(cat(n+1,c{:}),[],n)

| accepted