# Jos (10584)

I have been using Matlab since version 4 (1999 or so) and still prefer it over all other software tools available for data manipulation :-)

My professional interests: neuroscience (motor control & eye movements), cognitive psychology physics, mathematics, teaching

"The most important part of programming is writing the comments!"

**Statistics**

RANK**43**

of 242,546

REPUTATION**3,751**

CONTRIBUTIONS

**7** Questions

**1,390** Answers

ANSWER ACCEPTANCE **
71.43%
**

VOTES RECEIVED**899**

RANK**11** of 16,998

REPUTATION**34,848**

AVERAGE RATING**4.70**

CONTRIBUTIONS**80** Files

DOWNLOADS **455**

ALL TIME DOWNLOADS**330666**

CONTRIBUTIONS**0 Posts**

CONTRIBUTIONS**0** Public Channels

AVERAGE RATING

CONTRIBUTIONS**0** Highlights

AVERAGE NO. OF LIKES

**Content Feed**

for loop taking too long to operate

Pre-allocation, and recoding using logical indexing and sum should speed things up popn1 = nan(300,1) ; % pre-allocation for i...

12 months ago | 1

| accepted

How to make columns the same size

A solution: A = [1 3 ; 2 4 ; 5 7] B = [10 11 12 ; 13 14 15] newB = repmat(mean(A,2), 1, size(B,2)) newB(1:size(B,1),:) = B

1 year ago | 0

| accepted

How can I search a cell array for all instances of a character and replace it with something else?

Something along these lines, perhaps? C = {1.1 pi '*' ; 3 '*' 2.2} tf = cellfun(@(x) isequal(x,'*'), C) idx = find(tf)

2 years ago | 0

If a number in a matrix is <9 add 5 to it

Use the same selection on the right hand side of the equal sign A(A<9) = A(A<9) + 5 I myself prefer to code it like this tf =...

2 years ago | 0

| accepted

How to set the diagonal of a cell array of matrices?

Well found, Mohammed! You should put as an answer here :-) Here is another method A = cell(4,4) % a cell array n = size(A,1)...

2 years ago | 0

| accepted

how to add a row and column to a matrix ?

One easy option is to do this for rows and columns separately A = [1 2 3 ; 4 5 6 ; 7 8 9] x = 3 ; % add a row/column of ones b...

2 years ago | 3

| accepted

How can I assign a variable to all the columns and all the rows of a matrix?

Are you looking for the function SIZE? data = rand(20,10) ; [numsubs, numtrials] = size(data)

2 years ago | 0

| accepted

Can this line in a code be written in a smarter way?

as others have mentioned before this makes ones head spin ... However, C(:,:,c)=(dC*C(:,:,c)+(dC*C(:,:,c)')'+C(:,:,c)*(-b)+C(:...

2 years ago | 0

Indexing sections of arrays

x = 101:110 n = 3 tf = mod(0:numel(x)-1, 2*n) < n a = zeros(size(x)) a(tf) = x(tf) index = find(tf)

2 years ago | 1

| accepted

combinations with 2 columns

Take a look at ALLCOMB on the File Exchange: https://uk.mathworks.com/matlabcentral/fileexchange/10064-allcomb-varargin X = [1...

2 years ago | 0

Combination of 4 Element

I make use of my function NCHOOSE, available here: https://www.mathworks.com/matlabcentral/fileexchange/20011-nchoose % bl is ...

2 years ago | 0

| accepted

How to find angle between two lines?

Use the dot product between the two vectors (v1 and v2) given by the four x,y pairs points. Given the formula: dot(v1,v2) = | ...

2 years ago | 0

The most efficient way to locate the first 1's in each row of a matrix

m = [0 1 1 1 ;1 0 1 0; 0 0 1 1 ; 0 0 0 1] % a simple solution [r, c] = find(m') ; clear v1 v1(r,1) = c % another solution ...

2 years ago | 0

Could anyone suggest me is there any way of choosing maximum and minimum values together

Here is a nice trick that also allows you to combine functions in a single call, which also can return the other outputs of thes...

2 years ago | 1

How to have a multiple choice questionnaire that will ask the next question depending on the answer?

Take a look at all the dialog functions in matlab like questdlg, listdlg etc. Start however drawing a graph of all the question...

2 years ago | 0

how to find nearest date corresponding value ?

Does this return what you want? R = AOD_440(closestIndex, [1 2]) % select first (date?) and second (values?) columns

2 years ago | 0

| accepted

Plotting an Archimedean Spiral

In the computation of x and y you wrongly multiply b with Th. You should multipy by Th / (2*pi): r = 12.5; %outer radius a =...

2 years ago | 1

| accepted

replace duplicate value by 0 in matrix or vector

% for small vectors: b = [1 2 1 3 2 1 4 2] b(sum(triu(b == b')) > 1) = 0

2 years ago | 1

concatenate arrays after performing addition

A little simpler than all those permutes and reshapes: A = [1 2 3 ; 4 5 6 ; 7 8 9] ; B = [2 3 4 5] ; C = repmat(A, numel(B), ...

2 years ago | 0

Alternation without for loop

% a sorting trick A = [1 2 3 4 5 6 7 8 9 10] B = [0.5 0.2 0.4 0.8 0.9] C = [A B] ; [~,ix] = sort([1:numel(A) 1:numel(B)]) C...

2 years ago | 0

Matching closest values to each other

For larger vectors, where BSXFUN will require a lot of memory, function NEARESTPOINT might be useful A = rand(1000000,1) ; B = ...

2 years ago | 1

| accepted

Sort Descend Scientific Notation Error

You misuse the sort command. Simply: sortedu = sort(u ,'descend') would do :-) Moreover, if you remove the semicolons, you ...

2 years ago | 0

making an array to simulate states of a paramagnet with values of -1,+1.

Create a random vector with two values and map those to -1 and 1. An easy solution (with n=10): x = 2 * randi([0 1], 1, 10) - 1...

2 years ago | 0

| accepted

for loop that changes specific letters to numbers

Another option: str = 'apple'; TF1 = any(lower(str) ~= 'aeiou'.')

2 years ago | 2

Finding Min Value in array with changing condition

tf = a == 1 % create a logical array temp = cost(tf) % logical indexing to retrieve certain values mincost = min(t...

2 years ago | 0

How to genetate random number under constraint

Brute force attempt: N = 20 ; xyRange = [100 1900] ; minimumDistance = 200 ; attempt_counter = 1 ; Distances = 0 ; while ...

2 years ago | 0

Add an element to a 3D array

To concatenate two arrays A and B in the third dimension, use cat cat(3, A, B) Note that all the other dimensions of A and B s...

2 years ago | 0

To concatenate rows in matrix within for loop based on if else statement

This code is weird. In each iteration of "index" you fill either a matrix temp or a matrix temp_noise with m rows of values. T...

2 years ago | 1

To generate matrix from an array

More general, using indexing: A = [1 22 3 44 55 666 7 888 9] n = 2 B = A(((1:numel(A)-n).' + (0:n)))

2 years ago | 0