1x2 Cell with each ?field? containing 2 values

I have a Cell called "a" which is 2x1.
so from "a" to "a{1,1}" and "a{1,2}"
Each ?field? correct me pls if this is not the right term. contains 2 values.
How can i extract the first value of both fields? If i try t = a(1,1) it gives me both values but i jsut want the first one.

Answers (1)

You have 'a' like this
a = {[1 2], [3 4]};
To access first elemets, you need to use indexing like this
a{1,1}(1)
a{1,2}(1)
If you want to extract all the first elements, then you will need to use a loop
v = zeros(size(a));
for i = 1:numel(a)
v(i) = a{1,i}(1);
end
The above for-loop can be simplified using cellfun()
v = cellfun(@(x) x(1), a);

4 Comments

Yes thats how my a looks and how i try to get the variable but it doesnt work in my loop. I did a seperate array just to test it when i put the numbers in manually and that works.
a = {[1 2], [3 4]};
a{1,1}(1) ---> gets me 1
a{1,2}(1) ---> gets me 3
If i exchange it with my index for the loop it just stores the last value.
i=2
for 1:i
a = {[1 2], [3 4]};
a{1,i}(1)
end
---> only 4, as i want to plot a bar graph it results in just one bar and not two
Can you show the actual code for your for-loop. Following shows an example of how to use it in for-loop
a = {[1 2], [3 4]};
v = zeros(size(a));
for i = 1:numel(a)
v(i) = a{1,i}(1);
end
disp(v)
okay. it is a bit weird bc now it worked with my example, but not with my bar plot. it just plots me p{1,2}(1). p and xxx are basically the same with different values, so i dont understand why it doesnt work (Inside my loop i fit a curve to a set of data which is my p)
for i = 1:number (number being 2)
p{i} = polyfit(x_relevant{i}, y_relevant{i},1)
subplot(4,1,4)
b(i) = bar(p{1,i}(1),'FaceColor',c{i})
hold on
xxx = {[1 2], [3 4]}
x222(i) = xxx{1,i}(1)
end
Can you attach your actual code with all the relevant variables?

Sign in to comment.

Categories

Products

Release

R2019b

Asked:

on 27 Nov 2020

Commented:

on 29 Nov 2020

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!