how can I generate a code based on specific value selection in a matrix?
Ältere Kommentare anzeigen
I want to make a function that search for a value of y in x, either one element or sum of many elements, and return 1 or 0 to matrix Z, which is the same size as X, based on the elements chosen from X.
Example:
y=7;
x=[10 -1 -2 -3];
solution will be:
1) 10-1-2=7 ==> Z=[1 1 1 0];
2) 10-3=7 ==> Z=[1 0 0 1];
Any hints?
1 Kommentar
James Tursa
am 13 Sep. 2016
How large can your x vector be?
Akzeptierte Antwort
Weitere Antworten (1)
John D'Errico
am 13 Sep. 2016
3 Stimmen
There may be millions, or millions or trillions of solutions, or only a few. Your problem is classically called an integer partition .
https://en.wikipedia.org/wiki/Partition_(number_theory)
For example, the number of distinct ways the number 1000 can be written as the sum of elements from the set [1:1000] is 24061467864032622473692149727991. A BIG number.
You can download my partitions tool from the file exchange, which can generate the entire set (where that is feasible given some rational amount of time and memory.) It allows you to specify the elements to be allowed in the sum.
https://www.mathworks.com/matlabcentral/fileexchange/12009-partitions-of-an-integer
1 Kommentar
JacobM
am 13 Sep. 2016
Kategorien
Mehr zu Matrices and Arrays finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!