フィルターのクリア

A shortcut for recurring if statements

3 ビュー (過去 30 日間)
tiwwexx
tiwwexx 2019 年 7 月 8 日
編集済み: tiwwexx 2019 年 7 月 12 日
Hello, I have a case where I don't know how many elements a vector will have and then depending on different size vectors I'll either include something or not include something.
For example, what I have now is just
if numtable2rows >=2
tablerow(2,:) = tablerow(1,:) + [0 50 0 0];
end
if numtable2rows >=3
tablerow(3,:) = tablerow(2,:) + [0 50 0 0];
end
if numtable2rows >=4
tablerow(4,:) = tablerow(3,:) + [0 50 0 0];
end
if numtable2rows >=5
tablerow(5,:) = tablerow(4,:) + [0 50 0 0];
end
and I'm just expecting no more than 5 elements in numtable2row.
Does anyone know a more efficient way to do this?
Thank you in advance!
  2 件のコメント
Stephen23
Stephen23 2019 年 7 月 9 日
@tiwwexx: that algorithm seems unusual, because it discards the existing row data. Is that correct? In any case, please provide some example data, with both input and output matrices.
tiwwexx
tiwwexx 2019 年 7 月 9 日
More like builds off the original row data. Some example data would be "in one case I have 3 rows so numtablerows = 3". I also have a tablerow(1,:) and know that the height of each row is 50 pixels. Hence, if in this table I'm using ocr on each row individually I'll just build all the other row areas from the one I already have.

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

採用された回答

tiwwexx
tiwwexx 2019 年 7 月 8 日
編集済み: tiwwexx 2019 年 7 月 12 日
tablerow(1,:) = [a b c d];
for k= 1:numtable2rows
tablerow(k+1,:) = tablerow(k,:) + [0 50 0 0];
end
This works. Inspired by Walter Roberson.
  3 件のコメント
tiwwexx
tiwwexx 2019 年 7 月 9 日
There we go. I was sloppy in writing this down. numtbale2rows is a number, say '3' one time and '5' another time. then I already have a tablerow(1,:) so I can build off that.
Walter Roberson
Walter Roberson 2019 年 7 月 9 日
You fixed the size() but not the fact that tablerow(k) is a scalar.
tablerow(1,:) = [a b c d];
for k= 1:numtable2rows
tablerow(k+1,:) = tablerow(k, :) + [0 50 0 0];
end

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

その他の回答 (1 件)

Walter Roberson
Walter Roberson 2019 年 7 月 8 日
for K = size(tablerow,2)+1 : 5
tablerow(K,:) = tablerow(K-1,:) + [0 50 0 0];
end

カテゴリ

Help Center および File ExchangeMATLAB についてさらに検索

製品


リリース

R2019a

Community Treasure Hunt

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

Start Hunting!

Translated by