我想僅使用一次變量的修改版本(不更改原始版本),所以我不想將它保存在新變量中。我可以在Matlab中創建一個新的變量嗎?
例如:
a = [1 -2 3];
copy = a;
copy(a < 0) = 0;
b = [4 5 6] .* copy;
我可以簡化到像下面這樣?
a = [1 -2 3];
b = [4 5 6] .* a(<0 = 0);
編輯:
上面的例子僅僅是一個例子。一般問題是如何獲取下面的代碼生成的copy
,而不創建它。
% `a` is a vector
% `cond` is a logical vector such as `size(a) == size(cond)`
% `num` is a number
copy = a;
copy(cond) = num;
有*總是*用不同的方式來表達,而不USI問題一個臨時變量。在某些情況下,您會犧牲可讀性,而在其他情況下,您會提高可讀性。在性能不是問題的情況下,我說去尋找最可讀的解決方案。一種可能性是'B = [4 5 6]。*一。*(一> = 0)' – nispio
@nispio謝謝,我沒有想過由其邏輯一個向量乘以。您的想法幫助我找到了一般問題的[解決方案](http://stackoverflow.com/a/19695519/1529630)。 – Oriol