Assign value zero to n elements of cell array

Hi all,
I am declaring a cell array to hold some numeric and non numeric data. I want to set the first row, all columns, equal to the numeric value zero. Something like this:
myCell = cell(5, 500);
myCell{1,:} = 0;
Which gives the error:
The right hand side of this assignment has too few values to satisfy the left hand side.
I've tried a number of other things, none worked, so have resorted to doing it in a loop. It works, but I really don't like it. Is there a simple way I'm missing?
Cheers, Karl

 採用された回答

Sean de Wolski
Sean de Wolski 2014 年 3 月 17 日

13 投票

myCell(1,:) = {0}
  • Left hand side: use () to keep it as cells not braces for extraction of the content of cells.
  • Right handside: make 0 a 1x1 cell so that it can be stuck into all of the cells on the left via scalar expansion

4 件のコメント

Karl
Karl 2014 年 3 月 18 日
Excellent, thank you Sean. Just when I thought I had exhausted all combinations of brackets :)
Thank you for the concise answer and for explaining the reasoning behind it.
chris oj
chris oj 2018 年 10 月 18 日
This answer just helped me...thanks Sean.
Flavia Aluisi
Flavia Aluisi 2019 年 11 月 19 日
This is valid also in the case where I have a cell with 10 columns and 71842 rows and I want to fill with the number one only the rows between 2695 and 2746 of column one?
Sean de Wolski
Sean de Wolski 2019 年 11 月 19 日
@Flavia something like
myCell(2695:2746, 1) = {1}

サインインしてコメントする。

その他の回答 (2 件)

Parna Bhattacharya
Parna Bhattacharya 2018 年 3 月 17 日

1 投票

Thanks;

1 件のコメント

Benjamin
Benjamin 2019 年 12 月 12 日
This also works:
A =
1 2 3
4 5 6
7 8 9
in order to zero the ith row: (i = 1)
A(1,:) = [0]
>> A =
0 0 0
4 5 6
7 8 9

サインインしてコメントする。

Jeffery Devereux
Jeffery Devereux 2018 年 3 月 7 日

0 投票

Nice! Thanks (Had the same issue) Never thought about using the curly brackets around the zero.

カテゴリ

製品

タグ

質問済み:

2014 年 3 月 17 日

コメント済み:

2019 年 12 月 12 日

Community Treasure Hunt

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

Start Hunting!

Translated by