Extract and assign selected rows of structure [closed] - arrays

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 4 years ago.
Improve this question
S.a=rand(100,3)
S.b=rand(100,3)
S.c=rand(100,3)
S.d=rand(100,3)
K.a=[ ]
K.b=[ ]
K.c=[ ]
K.d=[ ]
for i=1:numel(S)
if rand<0.8 % condition
K(i,:)=S(i,:) % How this assignment can be made
end
end
How to extract the rows of all the fields of a structure and store it to another structure.

I'm not entirely sure from you explanation if this is what you want. The following code will copy the fields from in S into K for just the rows where the items are < 0.8
S.a=rand(100,3);
S.b=rand(100,3);
S.c=rand(100,3);
S.d=rand(100,3);
K = [];
for field = ['a', 'b', 'c', 'd']
I = rand(length(S.(field)), 1) < 0.8;
K.(field) = S.(field)(I,:);
end

Related

Ruby, how to swap the elements in an array? [closed]

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 10 months ago.
Improve this question
How do I swap an(example) array's second and third elements? I tried the following
def swap_elements(array)
array = ["blake", "ashley", "scott"]
array[1], array[2] = array[2], array[1]
end
but I get
: ["scott", "ashley"]
I lost the first[0] element
There are many ways to do this - this is a functional approach that doesn't mutate the original array:
def swap_elements(array)
# yields the array to the block
array.then do |first, *rest| # deconstruct the array
rest.reverse # swap the places of 2 & 3
.unshift(first) # put the first back in
end
end

MATLAB Basics - interpreting parentheses and colons in array manipulation [closed]

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 3 years ago.
Improve this question
What does it mean in MATLAB when I do:
array = array (1:number)
and what does it mean:
array = array(indexes_array)
and finally, what does it mean:
array = array(indexes_array,:)
Answers, according to MATLAB docs:
1)
array = array (1:number)
The colon notation in MATLAB provides an easy way to extract a range of elements from v:
v(3:7) % Extract the third through the seventh elements
ans =
9 4 2 11 7
2)
array = array(indexes_array)
array is reorganized according to indexes_array order, assuming that indexes_array is composed of indexes.
3)
array = array(indexes_array,:)
just the same as number 1), array is reorganized according to all the rows of indexes_array, ignoring the columns.
References:
https://www.mathworks.com/help/matlab/math/array-indexing.html
https://www.mathworks.com/company/newsletters/articles/matrix-indexing-in-matlab.html

Loop through Array to display # of characters [closed]

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 6 years ago.
Improve this question
Given an Array with some words in it, loop through the Array to display the number of characters in each word.
friends = ["Dan", "Mindy", "Suhasini", "Ryan"]
If you're looking to return an array with length displayed, the following would work:
friends = ["Dan", "Mindy", "Suhasini", "Ryan"]
p friends.map { |friend| friend.length }
You can display the number of characters using an array as following.
friends = ["Dan", "Mindy", "Suhasini", "Ryan"]
def count_char(friends)
count = 0
friends.each do |word|
count = word.length
puts "'#{word}' has #{count} character(s)"
end
end
count_char(friends)
=>
'Dan' has 3 character(s)
'Mindy' has 5 character(s)
'Suhasini' has 8 character(s)
'Ryan' has 4 character(s)
For more array reference : http://ruby-doc.org/core-2.2.0/Array.html

Matlab - Vectorizing some dimensions of array? [closed]

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 7 years ago.
Improve this question
I try vectorizing a 'for loop' for array but it does not work to me.
My 'for loop' is
for k = 1:N
R(n,n,k) = R(n,n,k) - SE3(k,k);
end
and vectorize it
diagSE3 = diag(SE3);
R(n,n,1:N) = R(n,n,1:N) - diagSE3(1:N);
With
R(n,n,1:N) = R(n,n,1:N) - diagSE3(1:N)
you try to subtract a vector (N x 1) from a 3-dimensional array with dimensions 1 x 1 x N. This can be repaired using squeeze:
R(n,n,1:N) = squeeze(R(n,n,1:N)) - diagSE3(1:N)

Finding a value in an array of class objects [closed]

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 7 years ago.
Improve this question
Is there a way to find a value of in an array of class objects. Then once it is found to be included, can you find what place within the array it resides at? E.g.
class SomeClass
def initialize(value,otherData)
#value = value
#otherData = otherData
end
end
x = 0
otherData = "foo"
list = Array.new
while (x < 3)
list.push SomeClass.new(x,otherData)
x += 1
end
I want to find list[x].value where value=2 and figure out what place in the array that is located at.
If SomeClass had a value method, an obvious way would be:
ix = list.find_index { |sc| sc.value == 2 }

Resources