Assigning specific elements of vector a different value
21 次查看(过去 30 天)
显示 更早的评论
Hi
I am trying to assign values to elements from one vector based on the values of another vector:
r = [1,3,4,5,3,3,4,5,6,4];
Postdia = [12,20]
For vector r, I want to pull out the element when the sum of r reaches 12 (Postdia First value) - and name it SYNAPSE. Similarly I want to pull out the element in r when the sum of the values reaches 20 (Postdia second value) - call it SYNAPSE also. The other values should all be assigned NO SYNAPSE.
For this I have written this code but it isn't working.
b= 0;
b2 = 0;
r = [1,3,4,5,3,3,4,5,6,4];
Postdia = [12,20]
r2 = r;
k = 0
for i = 1:length(r)
b = r(i) + b;
for j = 1:2
b2 = find(b > Postdia(j));
r2(i) = r(b2);
if b2 == 1
r2(i) = {'SYNAPSE'};
else
r2(i) = {'NO SYNAPSE'};
end
end
end
Does anyone have any suggestions?
Cheers
2 个评论
James Tursa
2018-1-10
What do you want for a result? A cell array the same size as r, but with either 'SYNAPSE' or 'NO SYNAPSE' for the elements depending on your criteria?
采纳的回答
Star Strider
2018-1-10
See if this works for you:
r = [1,3,4,5,3,3,4,5,6,4]; % Given Data
Postdia = [12,20]; % Given Data
r2 = repmat({'NO SYNAPSE'}, 1, numel(r)); % Create ‘r2’
csr = cumsum(r); % Cumulative Sum
lm = bsxfun(@le, csr, Postdia'); % Logic Matrix
[~,idx] = max(fliplr(lm),[],2); % Numerical Indices
r2(numel(r)-idx'+2) = {'SYNAPSE'}; % Desired Output
r2 =
1×10 cell array
Columns 1 through 5
{'NO SYNAPSE'} {'NO SYNAPSE'} {'NO SYNAPSE'} {'SYNAPSE'} {'NO SYNAPSE'}
Columns 6 through 10
{'NO SYNAPSE'} {'SYNAPSE'} {'NO SYNAPSE'} {'NO SYNAPSE'} {'NO SYNAPSE'}
Experiment to get the result you want.
1 个评论
Patel jaykumar Dipakbhai
2019-7-8
dear star strider, what if i want to assign specific values to each elements of the coloumn vector (v1)and same thing i want to do for another coloumn vectors(v2)? the values i want to assign are different for both coluomn vectors.
now after assigning the values to the both coloumn vectors what should i do 'to add the values of the respective column vectors' when the element of standard column vector (v1) is equal to the element of the v2?
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Triangulation Representation 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!