Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 9 years ago.
Improve this question
I need to do an optimization problem using ga algorithm. The number of decision variable is 3. i.e 3 x 1 matrix. but first element is always 0. keeping this as reference I want to optmize other two variables. How can I do this task?
Then just use
lb = [0,0,0];
ub = [0,8,8];
IntCon = [0 2 3];
Related
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 1 year ago.
Improve this question
I want to intertwine 0s between the bits of a variable. For example, imagine I have a variable a as follows
a = 1101
Then, I want to obtain the following result
b = 1_000000_1_000000_0_000000_1
That results from intertwining 6 0s betwen each bit of a. I was wondering if there was any elegant way of doing this in SystemVerilog. Any help is appreciated.
b = 0;
foreach (a[i]) b[i*7] = a[i];
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 4 years ago.
Improve this question
I understand how the program works but I have a little bit of confusion. If anybody can explain, that will be great. The output is 21, 12. Does it work like 7*3=21 and 4*3=12?
mat=[7 11 3; 3:5];
[r,c]=size(mat);
for i=1:r
fprintf ('The sum is %d\n',sum(mat(i,:)))
end
mat(i,:) will give you all values in the first row of mat. In your example, this first row is [7 11 3], and the second row is [3 4 5]. The outputs you're seeing are the sums of all values in each row (7+11+3=21).
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 8 years ago.
Improve this question
I want to make a loop in order to add the current state with the previous state.
For example:
M=1000;
for i=1:M A=i*(x(i));
This formula will be for M=1 but when M=2 the formula will be like this:
A=(i*(x(i))+((i-1)*(x(i-1)))
and when M=3 the formula will be
A=(i*(x(i))+((i-1)*(x(i-1)))+((i-2)*(x(i-2))
and so on till reach the maximum length of M which is 1000.
Your question is quite vague but it sounds like you just want a cumulative sum of the i*x(i) series:
i = 1:M;
s = i.*x(i);
cumsum(s);
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
I want to generate an array of random numbers that are divisible by 3 in matlab. What is the way to do this?
try this:
a = randi(100, 5) * 3;
a = a(:);
use randi(100, 5) to create a pseudo random 5x5 matrix of integers between 1 and 100. multiply by 3 to make them all divisible by 3. use the colon operator : to convert it to a 25 long array.
As suggested by #tashuhka you can avoid the : by:
a = randi(100, [25,1]) * 3;
You can read all about it here
Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 9 years ago.
Improve this question
The default matlab function medfilt2 uses a rectangular mask.
Thanks guys
you can use ordfilt2 .
For example, if your "ring" is just defined by:
ring= fspecial('gaussian',21,1)
ring = ring>eps & ring<1e-9
then:
order=sum(ring(:))/2;
B = ordfilt2(A,order,ring);
replaces each element in A by the order-th element in the sorted set of neighbors specified by the nonzero elements in the ring domain.
Here I chose 'order' to be half the total # of the pixels in the ring.