Answered

Extracting columns from a matrix, corresponding start and end times

The easiest approach is to create a for loop over the events Nevents = nume(EventTimes) R = zeros(64, 250, Nevents) % pre-allo...

Extracting columns from a matrix, corresponding start and end times

The easiest approach is to create a for loop over the events Nevents = nume(EventTimes) R = zeros(64, 250, Nevents) % pre-allo...

mer än 3 år ago | 0

| accepted

Answered

How can I make each cell array consistent in length?

C = {1:3 4 ; 5:9 10:12 ; 13:14 15} % a m-by-n cell array N = cellfun(@numel, C) maxN = max(N(:)) padfun = @(v) [v zeros(1, m...

How can I make each cell array consistent in length?

C = {1:3 4 ; 5:9 10:12 ; 13:14 15} % a m-by-n cell array N = cellfun(@numel, C) maxN = max(N(:)) padfun = @(v) [v zeros(1, m...

mer än 3 år ago | 1

Answered

replace values with nans

Take a look at logical indexing or the function ind2sub M = randi(10,8,6) % use indices of elements for which condition is tru...

replace values with nans

Take a look at logical indexing or the function ind2sub M = randi(10,8,6) % use indices of elements for which condition is tru...

mer än 3 år ago | 0

Answered

Rearranging Array Rows into Multiple Blocks while Maintaining the Old Order

You should learn about indexing, one of the most essential aspects of Matlab: M = randi(4,10,5) ; M(:,1) = 1:size(M,1) % exampl...

Rearranging Array Rows into Multiple Blocks while Maintaining the Old Order

You should learn about indexing, one of the most essential aspects of Matlab: M = randi(4,10,5) ; M(:,1) = 1:size(M,1) % exampl...

mer än 3 år ago | 1

| accepted

Answered

Combine Array from different cell

This is called concatenation. See the documentation of the function CAT. Matlab allows you to concatenate a bunch of column vec...

Combine Array from different cell

This is called concatenation. See the documentation of the function CAT. Matlab allows you to concatenate a bunch of column vec...

mer än 3 år ago | 0

Answered

how to make a column vector with evenly spaced entries with different coefficients

A simple one-liner: y = 3 ; k = 4 ; ycoeff(k:k:(k*k), 1) = (-k:-1)*y

how to make a column vector with evenly spaced entries with different coefficients

A simple one-liner: y = 3 ; k = 4 ; ycoeff(k:k:(k*k), 1) = (-k:-1)*y

mer än 3 år ago | 0

Answered

Mathematical computation for ordering matrices

You can sort the values according to the second column using sortrows. Something along these lines might work for you: centers ...

Mathematical computation for ordering matrices

You can sort the values according to the second column using sortrows. Something along these lines might work for you: centers ...

mer än 3 år ago | 0

| accepted

Answered

Concatenating a 3D matrix in the 3rd dimension when some cells are empty

B = cat(1,A{1,1,1,:}) % N-by-2 array

Concatenating a 3D matrix in the 3rd dimension when some cells are empty

B = cat(1,A{1,1,1,:}) % N-by-2 array

mer än 3 år ago | 0

| accepted

Answered

How can I make each cell array consistent in length?

If you make them the same length, you can also store them in a matrix. In that case, my PADCAT function is your friend :-) C = ...

How can I make each cell array consistent in length?

If you make them the same length, you can also store them in a matrix. In that case, my PADCAT function is your friend :-) C = ...

mer än 3 år ago | 1

Answered

Creating a table in matlab based on 2 variables and a for loop if statement.

This creates your table N = 11 ; % 10 timestamps time = 0:N-1 ; x = [4 3 1 4 2] ; y = [1 2 3 1 4] ; Z = repmat(y, N, 1) fo...

Creating a table in matlab based on 2 variables and a for loop if statement.

This creates your table N = 11 ; % 10 timestamps time = 0:N-1 ; x = [4 3 1 4 2] ; y = [1 2 3 1 4] ; Z = repmat(y, N, 1) fo...

mer än 3 år ago | 0

Answered

organising large sets of data into a irregular matrix

You can use cell arrays for this. A=[ 32 7.83425 32 8.0074 5 8.01005 5 8.0119 5 8.10775 19 8.1082 ...

organising large sets of data into a irregular matrix

You can use cell arrays for this. A=[ 32 7.83425 32 8.0074 5 8.01005 5 8.0119 5 8.10775 19 8.1082 ...

mer än 3 år ago | 0

| accepted

Answered

frequency of 2D matrix in 3D matrix

Convert the 3D N-by-M-by-Z matrix into a 2D Z-by-(N*M) matrix and use unique with the rows option on that. An example: M3D = ca...

frequency of 2D matrix in 3D matrix

Convert the 3D N-by-M-by-Z matrix into a 2D Z-by-(N*M) matrix and use unique with the rows option on that. An example: M3D = ca...

mer än 3 år ago | 0

Answered

How to generate data

I suggest you read parts of the starters manual and the help, and start exploring matlab :-) help linspace help colon x = 1:2...

How to generate data

I suggest you read parts of the starters manual and the help, and start exploring matlab :-) help linspace help colon x = 1:2...

mer än 3 år ago | 0

Answered

Work with a data set to compute std

Step 1 - Write a function that calculates the correlation between two vectors X and Y with equal lengths, using the formula you ...

Work with a data set to compute std

Step 1 - Write a function that calculates the correlation between two vectors X and Y with equal lengths, using the formula you ...

mer än 3 år ago | 0

Answered

Finding the first and the last elements of consecutive numbers and combining them with a semi colon.

Using diff and logical indexing, this turns out to be quite simple: outliers = [1 2 3 4 5 10 20 21 22 23]; TF = diff(outliers)...

Finding the first and the last elements of consecutive numbers and combining them with a semi colon.

Using diff and logical indexing, this turns out to be quite simple: outliers = [1 2 3 4 5 10 20 21 22 23]; TF = diff(outliers)...

mer än 3 år ago | 2

Answered

Split vector every time data changes from 2 to 1

Another approach: A = [1 2 1 1 2 1 2 2 1 1 1 2 2 2 1 1 1 2].' % data C = accumarray(cumsum([0 ; diff(A)==-1])+1, A, [], @(x) {...

Split vector every time data changes from 2 to 1

Another approach: A = [1 2 1 1 2 1 2 2 1 1 1 2 2 2 1 1 1 2].' % data C = accumarray(cumsum([0 ; diff(A)==-1])+1, A, [], @(x) {...

mer än 3 år ago | 1

Answered

Plotting a circle always around a moving point

Adapted from the help of animatedline: numpoints = 10000; x = linspace(0,4*pi,numpoints); y = sin(x); pc = [-.1 -.1 .2 ...

Plotting a circle always around a moving point

Adapted from the help of animatedline: numpoints = 10000; x = linspace(0,4*pi,numpoints); y = sin(x); pc = [-.1 -.1 .2 ...

mer än 3 år ago | 0

Answered

Issues with function ismember

Comparing floating point numbers is always tricky! Two number may look the same for you, but could still be slightly different f...

Issues with function ismember

Comparing floating point numbers is always tricky! Two number may look the same for you, but could still be slightly different f...

mer än 3 år ago | 2

| accepted

Answered

How to find a combination like this

Computationally less efficient, and mathematically less beautiful as Walters' snippet, but more matlab-ish in style: N = 4 ; C...

How to find a combination like this

Computationally less efficient, and mathematically less beautiful as Walters' snippet, but more matlab-ish in style: N = 4 ; C...

mer än 3 år ago | 0

Answered

How to compute fast?

Some suggestions: replace mean(A,B) by (A+B)/2 you can have j run from i to length(K1), since everything seems symmetric (unle...

How to compute fast?

Some suggestions: replace mean(A,B) by (A+B)/2 you can have j run from i to length(K1), since everything seems symmetric (unle...

mer än 3 år ago | 0

| accepted

Answered

How can I check if a specific set of numbers are present in my array?

I cannot resist to put the "simple" matlab version here. Note that this problem is closely related to Run-Length Encoding scheme...

How can I check if a specific set of numbers are present in my array?

I cannot resist to put the "simple" matlab version here. Note that this problem is closely related to Run-Length Encoding scheme...

mer än 3 år ago | 3

Answered

Fastest pairwise row sums

% An old-school 20th century indexing trick: A = randi(9,3,2) B = 100*randi(9,4,2) [ia, ib] = ndgrid(1:size(A,1),1:size(B,1...

Fastest pairwise row sums

% An old-school 20th century indexing trick: A = randi(9,3,2) B = 100*randi(9,4,2) [ia, ib] = ndgrid(1:size(A,1),1:size(B,1...

mer än 3 år ago | 0

Answered

Quickly create a vector of ones and zeros

N = 10 % final length of NewVec pos1 = 3 % start index of the 1's n1 = 4 % number of 1's % one-liner. NewVec should...

Quickly create a vector of ones and zeros

N = 10 % final length of NewVec pos1 = 3 % start index of the 1's n1 = 4 % number of 1's % one-liner. NewVec should...

mer än 3 år ago | 0

Answered

how to load values of two matrices into one matrix?

Many roads to Rome, which all learn you about using transpose, reshape, concatention, and/or clever indexing H1 = reshape([A B]...

how to load values of two matrices into one matrix?

Many roads to Rome, which all learn you about using transpose, reshape, concatention, and/or clever indexing H1 = reshape([A B]...

mer än 3 år ago | 0

Answered

Compute difference between rows

I do not understand where A and B come from but this gives the differences between all combinations of 2 rows of the matrix M. ...

Compute difference between rows

I do not understand where A and B come from but this gives the differences between all combinations of 2 rows of the matrix M. ...

mer än 3 år ago | 0

| accepted

Answered

How to extract sequential submatrices

Do not create 13 different variables, but store the result in 13 cells of a cell array, by applying MAT2CELL

How to extract sequential submatrices

Do not create 13 different variables, but store the result in 13 cells of a cell array, by applying MAT2CELL

mer än 3 år ago | 0

Answered

Converting a 4d vector to 2d vector

Y = randi(10,1,1,3,4) Y2 = squeeze(Y) % remove singleton dimensions help squeeze

Converting a 4d vector to 2d vector

Y = randi(10,1,1,3,4) Y2 = squeeze(Y) % remove singleton dimensions help squeeze

mer än 3 år ago | 0

| accepted

Answered

choose 2 random unique element inside cell

If I understand you correctly, the final output should have 8 unique numbers, in four groups of two, where the numbers in each g...

choose 2 random unique element inside cell

If I understand you correctly, the final output should have 8 unique numbers, in four groups of two, where the numbers in each g...

mer än 3 år ago | 0

Answered

Deletion of array value in both positions of separate arrays dependent upon the range of one array

A few remarks: 1. what if result is exactly +3 or -3? (you might want to use <= rather than <) 2. replace the two ELSE...

Deletion of array value in both positions of separate arrays dependent upon the range of one array

A few remarks: 1. what if result is exactly +3 or -3? (you might want to use <= rather than <) 2. replace the two ELSE...

mer än 3 år ago | 0

Answered

How to increment from 1 to 0.0000000001 (9 zeros) in 11 rows, 1 column (divide by 10 each time)

format long % for display purposes only v = 10.^(0:-1:-10).'

How to increment from 1 to 0.0000000001 (9 zeros) in 11 rows, 1 column (divide by 10 each time)

format long % for display purposes only v = 10.^(0:-1:-10).'

mer än 3 år ago | 1